pytest 框架之强大的 pytest.ini 配置文件解析

本贴最后更新于 365 天前,其中的信息可能已经时移世易

pytest作为python中一款强大的测试框架,能够高效帮我们发现测试用例、组织及执行测试用例,同时内置丰富的断言机制,深受测试人员的喜好,许多人所不知道的是pytest可以通过配置文件pytest.ini来改变其运行的方式,比如可以修改测试文件的收集执行规则、给测试用例打标签方便进行筛选等。同时pytest.ini还提供了其他的配置定制测试执行的行为,我们可以修改其配置以适应项目的需求。

pytest.ini是在项目根目录下的文本文件,在pytest运行的时候的就会加载其配置。

在cmd窗口我们可以运行pytest -h查看相关的说明:

image.png

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
2 操作
shakebabe 在 2023-12-22 10:20:00 更新了该帖
shakebabe 在 2023-12-22 10:19:03 更新了该帖
回帖
请输入回帖内容 ...