pytest.ini 配置文件详解:命令行选项、标记与目录规则
pytest.ini 是 pytest 框架的全局配置文件,允许开发者在执行测试时覆盖默认行为。通过该文件,可以自定义命令行选项、注册测试标记、指定测试目录及忽略路径,并调整测试文件的搜索规则,从而提升测试执行的效率与规范性。
1. 自定义命令行默认选项
在 [pytest] 节下使用 addopts 参数,可以设定每次运行 pytest 时自动应用的默认命令行选项。这有助于统一团队的测试报告风格和执行行为。
[pytest]
addopts = -rsxX -l --tb=short --strict上述配置包含以下效果:
-rsxX:在报告中显示跳过(s)、预期失败(x)和失败(X)的状态。-l:当测试失败时,显示局部变量的值,便于调试。--tb=short:简化堆栈回溯信息的输出,使日志更简洁。--strict:启用严格模式,禁止使用未注册的标记,防止拼写错误导致的测试遗漏。
2. 注册与使用测试标记
标记(markers)用于对测试用例进行分类。在 pytest.ini 中注册标记后,pytest 会自动识别它们,并通过 pytest --markers 查看当前所有可用标记。使用 pytest -m <标记名> 即可执行特定标记的测试。
[pytest]
markers =
smoke: Run the smoke test functions for tasks project #格式为 标记:注释
get: Run the test functions that test tasks.get()注意,若启用了 --strict 选项,使用未在此处注册的标记会导致 pytest 报错。因此,所有自定义标记都应预先注册。
3. 指定 pytest 最低版本
通过 minversion 参数,可以指定运行测试所需的 pytest 最低版本号。如果当前安装的 pytest 版本低于此值,测试将不会执行。
[pytest]
minversion = 4.04. 指定测试目录与忽略路径
默认情况下,pytest 会搜索当前目录下的所有测试文件。通过 testpaths 可以指定特定的测试目录,从而缩小测试范围。
[pytest]
testpaths = test_001同时,可以使用 norecursedirs 指定需要忽略的目录。当同时指定 testpaths 和 norecursedirs 时,testpaths 中的内容优先执行,但 norecursedirs 指定的目录仍会被排除。
[pytest]
norecursedirs = .* venv test_001 *.egg dist build5. 调整测试搜索规则
pytest 默认查找 test_*.py 或 *_test.py 文件,以及以 test_ 开头的函数。可以通过以下配置自定义这些规则:
python_classes:定义测试类的命名模式,例如*Test、Test*或*Suite。python_files:定义测试文件的命名模式,例如test_*、*_test或check_*。python_functions:定义测试函数的命名模式,例如test_*或check_*。
[pytest]
python_classes = *Test Test* *Suite
python_files = test_* *_test check_*
python_functions = test_* check_*6. 其他配置项
禁用 xpath:设置 xfail_strict = true 可使实际通过的 xfail(预期失败)用例报告为失败,确保测试的严格性。
配置日志:通过 log_cli 参数控制日志输出。默认值为 False 或 0,设置为 True 或 1 可启用命令行日志输出。
以上就是 pytest.ini 配置文件的详细内容,更多关于 Python 测试框架优化的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













