pytest.ini 配置
章节目录:
一、概述
- pytest.ini 文件是一个用于配置 pytest 测试运行器的配置文件。
- 它可以用于指定各种 pytest 的行为和选项,以定制测试运行的方式。
- 注意:请确保在项目根目录下创建并正确配置 pytest.ini 文件,并确保文件名为 pytest.ini,以使 pytest 能够正确读取并应用配置。
二、常用配置说明
2.1 添加命令行选项
- addopts:该选项用于添加额外的命令行选项和标志,它可以代替重复性的命令输入(尤其是命令行参数过长时):
[pytest]
addopts = -v --cov=myproject --cov-report=html
- 这个示例中,
-v
表示输出详细的测试结果,--cov=myproject
表示使用代码覆盖率工具测量项目中的代码覆盖率,--cov-report=html
表示生成HTML
格式的代码覆盖率报告。 - 这样执行命令行的时候,就不需要每次都手动加上这些参数了。
2.2 查找测试文件路径
- testpaths: 该选项用于指定 pytest 查找测试文件的路径。你可以在其中列出要搜索的目录或文件:
[pytest]
testpaths = tests
- 这个示例中,表示测试文件位于项目根目录下的 tests 文件夹中。
2.3 匹配指定的测试文件
- python_files: 该选项用于指定 pytest 应该查找的测试文件的命名模式。你可以使用通配符或正则表达式来匹配特定的文件名:
[pytest]
python_files = test_*.py
- 这个示例中,
test_*.py
表示 pytest 应该查找以test_
开头的 Python 文件作为测试文件。
2.4 匹配指定的测试类
- python_classes: 该选项用于指定 pytest 应该查找的测试类的命名模式。你可以使用通配符或正则表达式来匹配特定的类名:
[pytest]
python_classes = Test*
- 这个示例中,Test* 表示 pytest 应该查找以 Test 开头的测试类。
2.5 匹配指定的测试函数
- python_functions: 该选项用于指定 pytest 应该查找的测试函数的命名模式。你可以使用通配符或正则表达式来匹配特定的函数名:
[pytest]
python_functions = *_test
- 这个示例中,*_test 表示 pytest 应该查找以 _test 结尾的测试函数。
2.6 自定义的测试标记
- markers: 该选项用于定义自定义的测试标记。你可以通过标记标识特定类型的测试用例,然后使用
-m
选项来选择性地运行带有特定标记的测试用例。:
[pytest]
markers =
mac: run on mac
linux: run on linux
windows: run on windows
2.7 变更预期不一致用例的状态
- xfail_strict:xfail_strict 是一个布尔类型的配置项,默认为
False
。 - 当 xfail_strict 设置为
True
时,表示严格处理预期失败的测试用例(通过@pytest.mark.xfail
标记的用例)。 - 如果一个预期失败的用例在运行时实际成功了,或者一个预期成功的用例在运行时实际失败了,将会被视为测试失败。
- 设置 xfail_strict 为
False
时,预期失败的用例即使实际成功了,仍然会被视为通过。
[pytest]
xfail_strict = True
- 上述配置将启用严格的预期失败处理,确保预期失败的用例在实际成功时被视为失败。
2.8 设置运行过程中的命令行日志级别
- log_cli:log_cli 是一个字符串类型的配置项,用于设置 pytest 运行过程中的命令行日志级别。
- 可用的选项包括:
CRITICAL
、ERROR
、WARNING
、INFO
和DEBUG
。 - 默认情况下,log_cli 的值为空,即不会在命令行显示日志。
[pytest]
log_cli = INFO
- 上述配置将在命令行中显示
INFO
级别及以上的日志信息。
2.9 指定不需要递归搜索的目录
- norecursedirs:用于指定在运行测试时不需要递归搜索的目录。
- 这是一个非常有用的配置项,可以帮助排除不需要进行测试的目录,提高测试运行的效率。
- 使用 norecursedirs 可以指定一个目录列表,这些目录将被排除在测试递归搜索之外。可以使用相对路径或绝对路径来设置目录。
[pytest]
norecursedirs = tests/data docs
- 在上面的示例中,norecursedirs 的值为 “tests/data docs”,它指定了两个目录(多个路径用空格分隔):tests/data 和 docs。这两个目录将被排除在 pytest 的测试递归搜索之外,即测试运行时不会扫描这两个目录下的测试文件。
三、结束语
“-------怕什么真理无穷,进一寸有一寸的欢喜。”
微信公众号搜索:饺子泡牛奶。
原文地址:https://blog.csdn.net/weixin_48776531/article/details/135708270
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!