pytest作为python中一款强大的测试框架,能够高效帮我们发现测试用例、组织及执行测试用例,同时内置丰富的断言机制,深受测试人员的喜好,许多人所不知道的是pytest可以通过配置文件pytest.ini来改变其运行的方式,比如可以修改测试文件的收集执行规则、给测试用例打标签方便进行筛选等。同时pytest.ini还提供了其他的配置定制测试执行的行为,我们可以修改其配置以适应项目的需求。
pytest.ini是在项目根目录下的文本文件,在pytest运行的时候的就会加载其配置。
在cmd窗口我们可以运行pytest -h
查看相关的说明:
1、指定pytest在哪些目录中查询测试用例
当通过testpaths
指定时将会查询根目录下tests文件夹中的所有测试用例,没有配置时pytest将会按照默认规则去查询项目根目录下所有符合规则的测试用例。
[pytest]
testpaths = tests
2、指定pytest忽略的目录
当通过norecursedirs
指定了对应目录时,pytest在查找用例时会忽略此目录,比如忽略.git 和 .pytest_cache文件夹
[pytest]
norecursedirs = .git .pytest_cache
3、修改测试用例的收集规则
有时候,我们希望只收集执行特定命名的测试文件,而不是所有的测试文件。这时我们可以使用python_files
选项。例如,我们只想运行以“test_”开头的文件,可以在pytest.ini中添加如下配置:
[pytest]
python_files = test_*.py
通过python_class
可以指定要去执行的测试类名
[pytest]
python_classes = Test_*
通过python_funtions可以指定要执行的测试方法名
[pytest]
python_functions = test_*
4、设置测试用例标签
pytest.ini还可以为测试用例添加标签,以便更好地组织和筛选测试用例。可以使用markers
选项。比如我们为测试用例添加了“smoke”和“regression”两个标签,可以这样配置:
[pytest]
markers =
smoke: Run the smoke tests
regression: Run the regression tests
然后在测试用例中使用@pytest.mark
装饰器来标记测试用例:
import pytest
@pytest.mark.smoke
def test_smoke_example():
assert True
@pytest.mark.regression
def test_regression_example():
assert True
在运行pytest的时候通过-m参数即可指定运行对应标记测试用例:
pytest -m smoke
5、指定pytest运行参数
在运行pytest时我们为了得到详细的输出信息会加上-v
-s
参数,每一次去输入比较繁琐,我们可以通过pytest.ini的addopts
选项来指定要运行的参数:
[pytest]
addopts = -v -s
这将使得pytest在每次运行时都输出详细的测试信息,有助于及时发现问题并提高开发效率。
6、指定命令行输出的日志级别
在执行自动化测试时,日志对于排查问题至关重要,通过log_cli_level
选项可以调整pytest输出的测试日志级别,比如将级别设置为DEBUG,日志输出更为详细:
[pytest]
log_cli_level = DEBUG
欢迎来到testingpai.com!
注册 关于