zoukankan      html  css  js  c++  java
  • Pytest权威教程25-配置

    返回: Pytest权威教程

    配置

    命令行选项和配置文件设置

    你可以使用常规帮助选项获取有关INI选项配置文件中命令行选项和值的帮助:

    pytest -h   # prints options _and_ config file settings
    

    这将显示已安装插件注册的命令行和配置文件设置。

    初始化:确定ROOTDIR和INIFILE

    pytest根据rootdir命令行参数(指定的测试文件,路径)以及ini-files的存在为每次测试运行确定一个。在启动过程中,确定的文件rootdir和ini文件将作为pytest标头的一部分打印。

    以下是摘要的pytest用途rootdir:

    • 在收集期间构造nodeid;每个测试都分配有一个唯一的nodeid,该id植根于,rootdir并考虑了完整路径,类名,函数名和参数化(如果有)。
    • 插件将其用作存储项目/测试运行特定信息的稳定位置;例如,内部缓存插件在其中创建一个.pytest_cache子目录rootdir来存储其交叉测试运行状态。

    需要特别强调的是,rootdir它不用于修改sys.path/PYTHONPATH或影响模块的导入方式。有关更多详细信息,请参见:Pytest导入机制和系统路径。

    --rootdir=path命令行选项可用于强制使用特定目录。可以配合使用在pytest.ini文件中的addopts项中添加该参数来包含特定目录到环境变量中。

    寻找rootdir

    这是从中找到rootdir的算法args:

    • 确定指定的公共祖先目录,这些目录args被识别为文件系统中存在的路径。如果找不到此类路径,则将公共祖先目录设置为当前工作目录。
    • 寻找pytest.ini,tox.ini并setup.cfg在父目录和文件向上。如果匹配,它将成为ini文件,并且其目录将成为rootdir。
    • 如果未找到ini文件,请setup.py从公共祖先目录向上查找以确定rootdir。
    • 如果没有setup.py被发现,寻找pytest.ini,tox.ini并 setup.cfg在每个指定args向上。如果匹配,它将成为ini文件,并且其目录将成为rootdir。
    • 如果找不到ini文件,则使用已经确定的公共祖先作为根目录。这允许在不属于包且没有任何特定ini文件配置的结构中使用pytest。
    • 如果没有args给出,pytest会在当前工作目录下收集测试,并从那里开始确定rootdir。

    注意:自定义pytest plugin命令行参数可能包含路径,如中所示 。然后是强制性的,否则pytest使用test.log文件夹确定rootdir(另请参见问题1435)。也可以使用点来引用当前工作目录。pytest --log-output ../../test.log argsargs.
    请注意,现有的pytest.ini文件将始终被认为是匹配的,而tox.ini且setup.cfg只会如果包含匹配 [pytest]或[tool:pytest]部分,分别。多个ini-file候选文件中的选项永远不会合并-第一个获胜(pytest.ini即使不包含任何[pytest]部分,也总是成功)。

    该config对象随后将具有以下属性:

    • config.rootdir:确定的根目录,保证存在。
    • config.inifile:确定的ini文件可能是None。
      rootdir用作构建测试地址(“ nodeids”)的参考目录,也可以由插件用于存储每次测试运行信息。

    例如:

    pytest path/to/testdir path/other/
    

    将确定共同祖先path,然后检查ini文件,如下所示:

    # first look for pytest.ini files
    path/pytest.ini
    path/tox.ini    # must also contain [pytest] section to match
    path/setup.cfg  # must also contain [tool:pytest] section to match
    pytest.ini
    ... # all the way down to the root
    
    # now look for setup.py
    path/setup.py
    setup.py
    ... # all the way down to the root
    

    如何更改命令行选项默认值

    每次使用时,键入相同系列的命令行选项可能很麻烦pytest。例如,如果您始终希望查看有关跳过的测试和xfailed测试的详细信息,以及具有简短的“点”进度输出,则可以将其写入配置文件:

    # content of pytest.ini or tox.ini
    [pytest]
    addopts = -ra -q
    
    # content of setup.cfg
    [tool:pytest]
    addopts = -ra -q
    

    另外,您可以设置PYTEST_ADDOPTS环境变量以在使用环境时添加命令行选项:

    export PYTEST_ADDOPTS="-v"
    

    这是在addopts或环境变量存在的情况下构建命令行的方式:

    <pytest.ini:addopts> $PYTEST_ADDOPTS <extra command-line arguments>
    

    因此,如果用户在命令行中执行:

    pytest -m slow
    

    执行的实际命令行为:

    pytest -ra -q -v -m slow
    

    请注意,与其他命令行应用程序一样,在选项冲突的情况下,最后一个将获胜,因此上面的示例将显示冗长的输出,因为-voverwrites -q。

    内置的配置文件选项

    有关选项的完整列表,请参考参考文档。

  • 相关阅读:
    tensorflow 镜像
    TDD、BDD、DDD
    Node.js结合Selenium做Web自动化测试
    Selenium 对元素element的操作举例
    Selenium UI 举例 getCssValue
    《测之重器——自动化测试框架搭建指南》
    《Robot Framework自动化测试修炼宝典》道长
    SQLServer中round函数
    SQLServer中对时间和长度的处理
    SQLServer中获取所有数据库名、所有表名、所有字段名的SQL语句
  • 原文地址:https://www.cnblogs.com/superhin/p/11741587.html
Copyright © 2011-2022 走看看