zoukankan      html  css  js  c++  java
  • Pytest权威教程21-API参考-03-夹具(Fixtures)

    返回: Pytest权威教程

    夹具(Fixtures)

    参考: pytest fixtures:显式,模块化,可扩展。
    测试函数或其他Fixtures通过将它们声明为参数名称来RequestFixtures。
    需要Fixtures的测试示例如:

    def test_output(capsys):
        print("hello")
        out,err = capsys.readouterr()
        assert out == "hello
    "
    

    需要另一个Fixtures的Fixtures示例如:

    @pytest.fixture
    def db_session(tmpdir):
        fn = tmpdir / "db.file"
        return connect(str(fn))
    

    有关更多详细信息,请参阅完整的Fixture方法文档。

    @ pytest.fixture

    @fixture(scope='function', params=None, autouse=False, ids=None, name=None): 装饰器标记Fixtures工厂方法。

    可以使用该装饰器(带或不带参数)来定义Fixtures方法。
    稍后可以引用fixture函数的名称,以便在运行测试之前调用它:测试模块或类可以使用pytest.mark.usefixtures(fixturename)标记。

    测试函数可以直接使用Fixtures名称作为输入参数,在这种情况下,将注入从Fixtures函数返回的Fixtures实例。

    Fixtures可以使用returnyield语句为测试函数提供它们的值。无论测试结果如何,yieldyield语句作为拆卸代码执行后使用代码块时,必须只生成一次。

    参数:

    • scope-
      指此Fixtures共享范围的一个"function"(默认), ,,"class"或。"module""package""session" "package"`在这个时候被认为是实验性的
    • params- 一个可选的参数列表,它将导致多次调用fixture函数和使用它的所有测试。
    • autouse- 如果为True,则为所有可以看到它的测试激活fixture命令。如果为False(默认值),则需要显式引用来激活Fixtures。
    • ids- 每个对应于参数的字符串ID列表,以便它们是测试ID的一部分。如果没有提供id,它们将从params自动生成。
    • name- Fixture方法的名称。这默认为装饰函数的名称。如果Fixtures在定义它的同一模块中使用,Fixtures的方法名称将被RequestFixtures的方法arg遮蔽;解决此问题的一种方法是命名装饰函数fixture_<fixturename>,然后使用@pytest.fixture(name='<fixturename>')

    config.cache的

    参考: 缓存:使用跨testrun状态。
    config.cache对象允许其他插件和Fixtures在测试运行中存储和检索值。要从Fixture方法Request访问它pytestconfig到你的Fixture方法并得到它pytestconfig.cache
    在引擎盖下,缓存插件使用stdlib模块的简单dumps/loadsAPIjson

    Cache.get(key, default): 返回给定键的缓存值。如果尚未缓存任何值或无法读取值,则返回指定的默认值。

    参数:

    • key- 必须是/分隔值。通常,名字是你的插件或你的应用程序的名称。
    • default- 必须在缓存未命中或缓存值无效的情况下提供。

    Cache.set(key, value): 保存给定密钥的值。

    参数:

    • key- 必须是/分隔值。通常,名字是你的插件或你的应用程序的名称。
    • value- 必须是基本python类型的任意组合,包括嵌套类型,例如字典列表。

    Cache.makedir(name): 返回具有给定名称的目录路径对象。如果该目录尚不存在,则将创建该目录。你可以使用它来管理文件,例如跨测试会话存储/检索数据库转储。

    参数:

    • name- 必须是不包含/分隔符的字符串。确保该名称包含你的插件或应用程序标识符,以防止与其他缓存用户冲突。

    capsys

    参考: 捕获stdout / stderr输出。

    capsys(): 启用对sys.stdout和的写入文本捕获sys.stderr

    捕获的输出通过capsys.readouterr()方法调用提供,方法调用返回一个namedtuple。并且将对象。(out,err)outerr``text 返回的实例CaptureFixture`。

    例如:

    def test_output(capsys):
        print("hello")
        captured = capsys.readouterr()
        assert captured.out == "hello
    "
    

    class CaptureFixture: capsys(), capsysbinary(), capfd()capfdbinary() Fixtures函数所返回的对象。

    readouterr(): 到目前为止,读取并返回捕获的输出,重置内部缓冲区。

    返回:捕获内容作为带有outerr字符串属性的namedtuple

    with disabled(): 暂时禁用“with”块内的捕获。

    capsysbinary

    参考: 捕获stdout / stderr输出。

    capsysbinary(): 启用字节捕获写入sys.stdoutsys.stderr

    捕获的输出通过capsysbinary.readouterr()方法调用提供,方法调用返回一个namedtuple。并且将对象。(out,err)outerr``bytes 返回的实例CaptureFixture`。
    例如:

    def test_output(capsysbinary):
        print("hello")
        captured = capsysbinary.readouterr()
        assert captured.out == b"hello
    "
    

    capfd

    参考: 捕获stdout / stderr输出。

    capfd(): 允许写的文字捕捉到文件描述符12
    捕获的输出通过capfd.readouterr()方法调用提供,方法调用返回一个namedtuple。并且将对象。(out,err)outerr``text 返回的实例CaptureFixture`。
    例如:

    def test_system_echo(capfd):
        os.system('echo "hello"')
        captured = capsys.readouterr()
        assert captured.out == "hello
    "
    

    capfdbinary

    参考: 捕获stdout / stderr输出。

    capfdbinary(): 启用字节捕获文件描述符12

    捕获的输出通过capfd.readouterr()方法调用提供,方法调用返回一个namedtuple。并且将对象。(out,err)outerr``byte`

    返回的实例CaptureFixture
    例如:

    def test_system_echo(capfdbinary):
        os.system('echo "hello"')
        captured = capfdbinary.readouterr()
        assert captured.out == b"hello
    "
    

    doctest_namespace

    参考: 模块和测试文件的Doctest集成。

    doctest_namespace(): 返回一个dict将被注入doctests命名空间的Fixture。

    通常这个Fixtures与另一个autouseFixtures一起使用:

    @pytest.fixture(autouse=True)
    def add_np(doctest_namespace):
        doctest_namespace["np"] = numpy
    

    有关更多详细信息: 'doctest_namespace'Fixtures。

    Request

    参考: 根据命令行选项将不同的值传递给测试函数。
    requestFixtures是一个特殊的Fixtures提供Request测试用例的信息。

    class FixtureRequest: 来着测试函数或Fixtures方法的请求

    Request对象提供对Request测试上下文的访问,并且具有可选param属性,以防Fixtures间接参数化。

    fixturename = None: 正在执行此Request的Fixtures

    scope = None: 范围字符串,“方法”,“类”,“模块”,“会话”之一

    fixturenames: 此Request中所有活动Fixture方法的名称

    node: 底层集合节点(取决于当前Request范围)

    config: 与此Request关联的pytest配置对象。

    function: 如果Request具有按方法范围,则测试函数对象。

    cls: 收集测试函数的class(可以是None)。

    instance: 收集测试函数的实例(可以是None)。

    module: 收集测试函数的python模块对象。

    fspath: 收集此测试的测试模块的文件系统路径。

    keywords: 底层节点的关键字/标记字典。

    session: Pytest会话对象。

    addfinalizer(finalizer): 在Request测试上下文完成执行的最后一次测试之后添加要调用的终结器/拆卸函数。

    applymarker(marker): 将标记应用于单个测试函数调用。如果你不希望在所有函数调用中都有关键字/标记,则此方法很有用。

    参数:

    • marker-`_pytest.mark.MarkDecorator``。

    raiseerror(msg): 使用给定的消息引发FixtureLookupError。

    getfixturevalue: 动态运行命名Fixtures方法。

    建议尽可能通过函数参数声明Fixture方法。但是,如果你只能在测试设置时决定是否使用其他Fixtures,则可以使用此方法在Fixtures或测试用例体内检索它。

    getfuncargvalue(argname): 不推荐使用,请使用getfixturevalue。

    pytestconfig

    pytestconfig(): 返回_pytest.config.Config对象的会话范围的fixture。
    例如:

    def test_foo(pytestconfig):
        if pytestconfig.getoption("verbose") > 0:
            ...
    

    record_property

    参考: record_property。

    record_property(): 为调用测试添加额外的属性。用户属性成为测试报告的一部分,可供配置的报告者使用,如JUnit XML。该fixture可以调用,其值自动进行xml编码。(name,value)`
    例如:

    def test_function(record_property):
        record_property("example_key",1)
    

    record_testsuite_property

    参考: record_testsuite_property

    record_testsuite_property(): 将新的标记记录为根的子级。 这适用于编写有关整个测试套件的全局信息,并且与xunit2 JUnit系列兼容。

    这是一个会话范围的Fixture方法,用(name,value)调用。 例:

    def test_foo(record_testsuite_property):
        record_testsuite_property("ARCH", "PPC")
        record_testsuite_property("STORAGE_TYPE", "CEPH")
    

    name必须是一个字符串,value将被转换为字符串并正确地进行xml-escaped。

    caplog

    参考: 日志。

    caplog(): 访问和控制日志捕获。
    通过以下属性/方法可以获取捕获的日志:

     string containing formatted log output
    * caplog.records         -> list of logging.LogRecord instances
    * caplog.record_tuples   -> list of (logger_name,level,message) tuples
    * caplog.clear()         -> clear captured records and formatted log output string
    

    这将返回一个_pytest.logging.LogCaptureFixture实例。

    class LogCaptureFixture(item): 提供对日志捕获的访问和控制。

    handler

    返回类型:LogCaptureHandler

    get_records(when): 获取其中一个可能的测试阶段的日志记录。

    参数:

    • when(str) - 从哪个测试阶段获取记录。有效值为:“setup”,“call”和“teardown”。

    返回类型: 列表 [logging.LogRecord]
    返回: 在给定阶段捕获的记录列表

    版本3.4中的新方法。

    text: 返回日志文本。

    records: 返回日志记录列表。

    record_tuples: 返回用于断言比较的日志记录的精简版本的列表。
    元组的格式是:(logger_name,log_level,message)`

    messages: 返回格式插值日志消息的列表。

    与包含格式字符串和插值参数的“记录”不同,此列表中的日志消息都是内插的。与包含处理程序输出的“text”不同,此列表中的日志消息与级别,时间戳等一致,使得精确比较更可靠。

    请注意,不包括回溯或堆栈信息(来自logging.exception()或记录函数的exc_infostack_info参数),因为这是由处理程序中的格式化程序添加的。

    版本3.7中的新方法。

    clear(): 重置日志记录列表和捕获的日志文本。

    set_level(level, logger=None): 设置捕获日志的级别。在测试结束时,该级别将恢复到之前的值。

    参数:

    • level(int) - 记录器到级别。
    • logger(str) - 更新级别的记录器。如果未给出,则更新根记录器级别。

    版本3.4中更改:此方法更改的记录器级别将在测试结束时恢复为其初始值。

    with at_level(level, logger=None): 上下文管理器,用于设置捕获日志的级别。在'with'语句结束后,级别将恢复为其原始值。

    参数:

    • level(int) - 记录器到级别。
    • logger(str) - 更新级别的记录器。如果未给出,则更新根记录器级别。

    Monkeypatching

    参考: Monkeypatching / mocking模块和环境。

    返回的monkeypatchfixture提供了这些辅助方法来修改对象,字典或os.environ:

    monkeypatch.setattr(obj,name,value,raising=True)
    monkeypatch.delattr(obj,name,raising=True)
    monkeypatch.setitem(mapping,name,value)
    monkeypatch.delitem(obj,name,raising=True)
    monkeypatch.setenv(name,value,prepend=False)
    monkeypatch.delenv(name,raising=True)
    monkeypatch.syspath_prepend(path)
    monkeypatch.chdir(path)
    

    在Request测试用例或Fixtures完成后,所有修改都将被撤消。raising如果设置/删除操作没有目标,则该参数确定是否将引发KeyError或AttributeError。
    这将返回一个MonkeyPatch实例。

    class MonkeyPatch: monkeypatchFixtures返回的对象保留了setattr / item / env / syspath更改的记录。

    with context(): 上下文管理器返回一个新MonkeyPatch对象,该对象撤消with在退出时在块内完成的任何修补:

    import functools
    def test_partial(monkeypatch):
        with monkeypatch.context() as m:
            m.setattr(functools,"partial",3)
    

    在测试结束之前需要撤消一些补丁的情况下很有用,例如stdlib模拟可能会在模拟时破坏pytest本身的函数(例如,参见[#3290)。

    setattr(target, name, value=, raising=True): 在目标上设置属性值,记住旧值。如果该属性不存在,则默认引发AttributeError。

    为方便起见,你可以指定一个字符串target,将其解释为虚线导入路径,最后一部分是属性名称。示例如:将设置模块的方法。monkeypatch.setattr("os.getcwd",lambda:"/")``getcwd``os

    raising值确定如果属性尚不存在,setattr是否应该失败(默认为True,这意味着它将引发)。

    delattr(target, name=, raising=True): 删除属性nametarget,默认情况下提高AttributeError的它的属性,以前不存在的。

    如果未name指定且target为字符串,则将其解释为虚线导入路径,最后一部分为属性名称。

    如果raising设置为False,则缺少属性时不会引发异常。

    setitem(dic, name, value): 将字典条目设置name为值。

    delitem(dic, name, raising=True): name从dict删除。如果不存在则引发KeyError。

    如果raising设置为False,则如果缺少密钥,则不会引发异常。

    setenv(name, value, prepend=None): 将环境变量设置namevalue。如果prepend是字符,请读取当前环境变量值并valueprepend字符旁边添加前缀。

    delenv(name, raising=True): name从环境中删除。如果不存在则引发KeyError。

    如果raising设置为False,则在缺少环境变量时不会引发异常。

    syspath_prepend(path): 前置pathsys.path导入位置列表。

    chdir(path): 将当前工作目录更改为指定的路径。Path可以是字符串或py.path.local对象。

    undo(): 撤消以前的更改。此调用使用撤消堆栈。除非你在撤消调用后执行更多monkeypatching,否则再次调用它无效。

    通常不需要调用undo(),因为它在拆除期间会自动调用。

    请注意,在单个测试函数调用中使用相同的monkeypatchfixture。如果测试函数本身和其中一个测试Fixtures同时使用monkeypatch,则调用undo()将撤消两个函数中所做的所有更改。

    testdir

    此fixture提供了一个Testdir对测试文件的黑盒测试有用的实例,使其成为测试插件的理想选择。

    要使用它,请包含在最顶层的conftest.py文件中:

    pytest_plugins = 'pytester'
    

    class Testdir: 临时测试目录,带有测试/运行pytest本身的工具。
    这是基于tmpdirFixtures,但提供了许多方法,有助于测试pytest本身。除非chdir()使用,否则所有方法都将tmpdir用作其当前工作目录。
    属性:

    Tmpdir:py.path.local临时目录的实例。
    Plugins: 与parseconfig()。最初这是一个空列表,但插件可以添加到列表中。要添加到列表中的项目类型取决于使用它们的方法,因此请参阅它们以获取详细信息。

    CLOSE_STDIN: `builtins.object的别名。

    exception TimeoutExpired

    finalize(): 清理全局状态工件。

    一些方法修改全局解释器状态,这会尝试清除它。它不会删除临时目录,因此可以在测试运行完成后查看它。

    make_hook_recorder(pluginmanager): HookRecorder为PluginManager创建一个新的。

    chdir(): cd进入临时目录。

    这在实例化时自动完成。

    makefile(ext, *args, **kwargs): 在testdir中创建新文件。

    参数:

    • ext(str) - 文件应使用的扩展名,包括点,例如.py
    • args(list**]) - 所有args将被视为字符串并使用换行符连接。结果将作为内容写入文件。该文件的名称将基于Request此Fixtures的测试用例。
    • kwargs- 每个关键字都是文件的名称,而它的值将被写为文件的内容。

    例子:

    testdir.makefile(".txt","line1","line2")
    testdir.makefile(".ini",pytest="[pytest]
    addopts=-rs
    ")
    

    makeconftest(source): 使用'source'作为内容写一个contest.py文件。

    makeini(source): 使用'source'作为内容写一个tox.ini文件。

    getinicfg(source): 从tox.ini配置文件返回pytest部分。

    makepyfile(*args, **kwargs): makefile()的扩展名为.py的快捷方式。

    maketxtfile(*args, **kwargs): makefile()的扩展名为.txt的快捷方式。

    syspathinsert(path=None): 将目录添加到sys.path,默认为tmpdir

    当该对象在每次测试结束时死亡时,会自动撤消。

    mkdir(name): 创建一个新的(子)目录。

    mkpydir(name): 创建一个新的python包。

    这会创建一个带有空__init__.py文件的(子)目录,因此它被识别为python包。

    class Session(config)

    exception Failed: 在测试运行失败时发出停止信号。

    exception Interrupted: 发出中断的测试运行信号。

    for ... in collect(): 返回此集合节点的子项(项和收集器)列表。

    getnode(config, arg): 返回文件的集合节点。

    参数:

    • config-_pytest.config.Config创建配置
    • arg-py.path.local文件的一个实例

    getpathnode(path): 返回文件的集合节点。

    这就好比getnode()创建(配置)pytest配置实例。

    参数:

    • path-py.path.local文件的一个实例

    genitems(colitems): 从集合节点生成所有测试项。
    这将递归到集合节点并返回其中包含的所有测试项的列表。

    runitem(source): 运行“test_func”项。

    调用测试实例(包含测试用例的类)必须提供一个.getrunner()方法,该方法应该返回一个可以为单个项运行测试协议的运行器,例如_pytest.runner.runtestprotocol()

    inline_runsource(source, *cmdlineargs): 使用中运行测试模块pytest.main()

    此运行将“source”写入临时文件并pytest.main()在其上运行,返回HookRecorder结果的实例。

    参数:

    • source- 测试模块的源代码
    • cmdlineargs- 要使用的任何额外命令行参数

    返回:HookRecorder结果的实例

    inline_genitems(*args): pytest.main(['--collectonly'])在进程中运行。

    运行pytest.main()函数在测试过程本身内运行所有pytestinline_run(),但返回收集项和HookRecorder实例的元组。

    inline_run(*args, plugins=(), no_reraise_ctrlc=False): pytest.main()在进程中运行,返回HookRecorder。

    运行该pytest.main()函数以在测试过程本身内运行所有pytest。这意味着它可以返回一个HookRecorder实例,该实例从该运行中提供比通过匹配stdout / stderr可以完成的更详细的结果runpytest()

    参数:

    • args- 要传递给的命令行参数pytest.main()
    • 插件- (仅限关键字)pytest.main()实例应使用的额外插件实例

    返回:一个HookRecorder实例

    runpytest_inprocess(*args, **kwargs): 返回运行pytest in-process的结果,提供与self.runpytest()提供的类似的接口。

    runpytest(*args, **kwargs): 运行pytest内联或子进程,具体取决于命令行选项“-runpytest”并返回aRunResult

    parseconfig(*args): 从给定的命令行args返回一个新的pytest Config实例。

    这将调用_pytest.config中的pytest引导代码来创建一个新的_pytest.core.PluginManager并调用pytest_cmdline_parse钩子来创建一个新_pytest.config.Config实例。
    如果plugins已经填充,则应该是要使用PluginManager注册的插件模块。

    parseconfigure(*args): 返回新的pytest配置的Config实例。

    这会返回一个新_pytest.config.Config,但也会调用pytest_configure钩子方法。

    getitem(source, funcname='test_func'): 返回测试项目以获得测试用例。

    这会将源写入python文件并在生成的模块上运行pytest的集合,返回所Request的函数名称的测试项。

    参数:

    • source- 模块源
    • funcname- 要为其返回测试项的测试函数的名称

    getitems(source): 返回从模块收集的所有测试项目。

    这会将源写入python文件并在生成的模块上运行pytest的集合,返回其中包含的所有测试项。

    getmodulecol(source, configargs=(), withinit=False): 返回模块集合节点source

    这将写入source文件makepyfile(),然后在其上运行pytest集合,返回测试模块的集合节点。

    参数:

    • source- 要收集的模块的源代码
    • configargs- 要传递给的任何额外参数parseconfigure()
    • withinit- 是否也将__init__.py文件写入同一目录以确保它是一个包

    collect_by_name(modcol, name): 从模块集合返回name的集合节点。

    这将在模块集合节点中搜索与给定名称匹配的集合节点。

    参数:

    • modcol- 模块集合节点;看到getmodulecol()
    • name- 要返回的节点的名称

    popen(cmdargs, stdout=-1, stderr=-1, stdin=<class 'object'>, **kw): 调用subprocess.Popen。

    这会调用subprocess.Popen,确保当前工作目录在PYTHONPATH中。
    你可能想要使用run()

    run(*cmdargs, timeout=None, stdin=<class 'object'>): 运行带参数的命令。

    使用subprocess.Popen运行进程保存stdout和stderr。

    参数:

    • args- 传递给subprocess.Popen()的参数序列
    • timeout- 超时和提升之后的秒数Testdir.TimeoutExpired

    返回一个RunResult

    runpython(script): 使用sys.executable作为解释器运行python脚本。
    返回一个RunResult

    runpython_c(command): 运行python -c“command”,返回一个RunResult

    runpytest_subprocess(*args, timeout=None): 运行pytest作为具有给定参数的子进程。

    添加到plugins列表中的所有插件都将使用-p命令行选项添加。另外--basetemp用于将任何临时文件和目录放在带有“runpytest-”前缀的编号目录中,以避免与临时文件和目录的正常编号pytest位置冲突。

    参数:

    • args- 传递给pytest子进程的参数序列
    • timeout- 超时和提升之后的秒数Testdir.TimeoutExpired

    返回一个RunResult

    spawn_pytest(string, expect_timeout=10.0): 使用pexpect运行pytest。

    这确保使用正确的pytest并设置临时目录位置。

    返回pexpect子对象。

    spawn(cmd, expect_timeout=10.0): 使用pexpect运行命令。

    返回pexpect子对象。

    class RunResult: 运行命令的结果。

    属性:

    Ret: 返回值
    Outlines: 从stdout捕获的行列表
    Errlines: 从stderr捕获的行列表
    Stdout: LineMatcher``方法 Stderr: LineMatcher`stderr
    Duration: 持续时间(秒)

    parseoutcomes(): 从解析测试过程产生的终端输出返回outcometring-> num的字典。

    assert_outcomes(passed=0, skipped=0, failed=0, error=0, xpassed=0, xfailed=0): 断言在测试运行的文本输出中,指定的结果与相应的数字一起出现(0表示未发生)。

    class LineMatcher: 灵活的文本匹配。

    这是一个测试大文本(例如命令输出)的便利类。

    构造函数采用一系列行而没有它们的尾随换行符,即text.splitlines()

    str(): 返回整个原始文本。

    fnmatch_lines_random(lines2): 使用任何顺序在输出中存在检查行。

    使用检查行fnmatch.fnmatch。参数是必须以任何顺序出现在输出中的行列表。

    re_match_lines_random(lines2): 输出中的检查行使用re.match任何顺序。

    参数是必须以任何顺序出现在输出中的行列表。

    get_lines_after(fnline): 返回文本中给定行后面的所有行。
    给定的行可以包含glob通配符。

    fnmatch_lines(lines2): 使用搜索匹配的行搜索捕获的文本fnmatch.fnmatch

    参数是必须匹配并且可以使用glob通配符的行列表。如果它们不匹配,则调用pytest.fail()。匹配和不匹配也打印在标准输出上。

    re_match_lines(lines2): 使用搜索匹配的行搜索捕获的文本re.match

    参数是必须匹配的行列表re.match。如果它们不匹配,则调用pytest.fail()。

    匹配和不匹配也打印在标准输出上。

    recwarn

    参考: 警告断言

    返回WarningsRecorder记录测试函数发出的所有警告的实例。
    有关警告类别的信息,请参阅: 警告断言。

    class WarningsRecorder: 用于记录引发警告的上下文管理器。
    改编自warnings.catch_warnings。

    list: 记录的警告列表。

    pop(cls=<class 'Warning'>): 弹出第一个录制的警告,如果不存在则引发异常。

    clear(): 清除录制的警告列表。

    每个记录的警告都是一个例子warnings.WarningMessage

    注意:RecordedWarning在pytest 3.1中从普通类改为命名元组

    注意:DeprecationWarning并且PendingDeprecationWarning区别对待;请参阅[确保代码触发弃用警告。

    tmp_path

    参考: 临时目录和文件

    tmp_path(): 返回临时目录路径对象,该对象对于每个测试函数调用是唯一的,创建为基本临时目录的子目录。返回的对象是一个pathlib.Path对象。

    注意:在python ❤️.6中,这是一个pathlib2.Path

    tmp_path_factory

    参考: tmp_path_factoryFixtures
    tmp_path_factory实例有以下方法:

    TempPathFactory.mktemp(basename, numbered=True): 制作工厂管理的临时目录

    TempPathFactory.getbasetemp(): 返回基本临时目录。

    tmpdir

    参考: 临时目录和文件

    tmpdir(): 返回临时目录路径对象,该对象对于每个测试函数调用是唯一的,创建为基本临时目录的子目录。返回的对象是[py.path.local路径对象。

    tmpdir_factory

    参考: 'tmpdir_factory'Fixtures
    tmpdir_factory实例有以下方法:

    创建基本临时目录的子目录并将其返回。如果numbered,通过添加大于任何现有的数字前缀来确保该目录是唯一的。

    向后compat装饰器_tmppath_factory.getbasetemp

  • 相关阅读:
    videojs播放直播源rtmp时画面在左上角解决方案
    常用git操作命令
    vue使用vue-video-player在直播中的应用
    element-ui隐藏组件scrollbar的使用
    Array.reduce()学习
    阿里云物联网套件(iot)设备间通信(M2M)在web端的实践
    前端axios下载excel(二进制)
    nodejs连接阿里云物联网套件(mqtt)
    base64格式图片转换为FormData对象进行上传
    NodeJS之微信开发
  • 原文地址:https://www.cnblogs.com/superhin/p/11733480.html
Copyright © 2011-2022 走看看