pytest--配置 (二)

简介: pytest--配置

更改测试搜索的规则


pytest根据一定的规则搜索并运行测试,标准的测试搜索规则如下。

  • 从一个或多个目录开始查找。你可以在命令行指定文件名或目录名。如果未指定,则使用当前目录
  • 在该目录和所有子目录下递归查找测试模块
  • 测试模块是指文件名为test_*.py或*_test.py的文件
  • 在测试模块中查找以test_开头的函数名。
  • 查找名字以Test开头的类,其中,首先筛选掉包含__init__函数的类,在查找类中以Test_开头的类方法

以上是标准的测试搜索规则,你也可以更改它们


python_classes

通常pytest的测试搜索规则是寻找以Test*开头的测试类,而且这个类不能有__init__()函数。但是,如果把测试类命名为<something>Test或<something>Suite怎么办?python_classes就可以解决这个问题。

[pytest]
python_classes = *Test Test* *Suite

这个设置允许我们像下面这样给类取名

class DeleteSuite():
    def test_delete_1(self):
        pass
    def test_delete_2(self):
        pass

我们修改test_001目录下的test_onne.py文件

class DeleteSuite():
    def test_delete_1(self):
        assert True
    def test_delete_2(self):
        assert False

先不添加python_classes执行一下

然后我们添加上python_classes执行一下

[pytest]
python_classes = *Test Test* *Suite


python_files

像pytest_classes一样,python_files可以更改默认的测试搜索规则,而不是仅查找以test_*开头的文件和以*_test结尾的文件

假设你的测试文件统一命名为check_<something>.py。你不必重命名 所有的测试文件,只要在pytest.ini文件里增加一行配置即可

[pytest]
python_files = test_* *_test check_*

我们将test_one.py改为check_one.py在执行

[pytest]
python_files = test_* *_test check_*
python_classes = *Test Test* *Suite


python_functions


python_functions与之前的两个设置类似,它只是用来测试函数和方法的命名。more规则以test_*开头。如果想添加check_*,则只需要添加一行配置

[pytest]
python_functions = test_* check_*

修改test_one.py下的代码

class DeleteSuite():
    def check_delete_1(self):
        assert True
    def check_delete_2(self):
        assert False
[pytest]
python_functions = test_* check_*
python_files = test_* *_test check_*
python_classes = *Test Test* *Suite
addopts = -rsxX -l -v --tb=short --strict


禁用XPATH


设置xfail_strict = true将会使那些被标记为@pytest.mark.xfail但实际通过的测试用例也被报告为失败

[pytest]
xfail_strict = true

很难理解是吧!!!喝杯茶,我给你给个栗子吃

test_one.py代码如下,可以看到,我们有两个测试用例,都是标记的预期失败,但其中一个是会成功,一个是失败的,我们不加xfail_strict = true来执行一下

import pytest
@pytest.mark.xfail()
def test_answer():
    assert 5 == 5
@pytest.mark.xfail()
def test_answer1():
    assert 5 != 5

可以看到有一个通过了,有一个失败了,但是我们如果想把标记为预期失败的,不管结果是成功还是失败都标记为失败,则要在配置里加xfail_strict = true

[pytest]
xfail_strict = true

这样两个用例就都是失败的


相关文章
|
4月前
|
测试技术 C++ Windows
Pytest配置文件pytest.ini
`pytest.ini`是pytest配置文件,用于修改默认行为,不支持中文符号。配置内容包括:定制测试文件、类和方法的命名规则,添加默认参数(如`addopts = -v -s --alluredir=./results`),指定或忽略执行目录,以及设置日志格式和级别。通过配置,可以更方便地管理测试运行和日志收集。
41 1
|
测试技术 Python
Pytest3种配置文件方式
Pytest3种配置文件方式
50 0
|
测试技术 Python
pytest--命令行常用参数
pytest--命令行常用参数
pytest--命令行常用参数
|
测试技术 Python
|
测试技术
pytest--常用插件
pytest--常用插件
|
测试技术 Python
pytest--fixture
pytest--fixture
|
测试技术
18-pytest-配置文件pytest.ini使用
18-pytest-配置文件pytest.ini使用
|
测试技术
pytest conftest.py和fixture的配合使用
pytest conftest.py和fixture的配合使用
|
Linux 测试技术 Python
pytest学习和使用1-pytest安装和版本查看
pytest学习和使用1-pytest安装和版本查看
462 0
pytest学习和使用1-pytest安装和版本查看
|
测试技术 C++
pytest学习和使用18-pytest.ini配置文件如何使用?
pytest学习和使用18-pytest.ini配置文件如何使用?
111 0