Pytest 简明教程
Pytest - Conftest.py
我们可以在此文件中定义 fixture 函数,以便可以在多个测试文件之间访问它们。
创建一个新文件 conftest.py 并向其中添加以下代码 −
import pytest
@pytest.fixture
def input_value():
input = 39
return input
编辑 test_div_by_3_6.py 以删除 fixture 函数 −
import pytest
def test_divisible_by_3(input_value):
assert input_value % 3 == 0
def test_divisible_by_6(input_value):
assert input_value % 6 == 0
创建一个新文件 test_div_by_13.py −
import pytest
def test_divisible_by_13(input_value):
assert input_value % 13 == 0
现在,我们有 test_div_by_3_6.py 和 test_div_by_13.py 文件利用 conftest.py 中定义的 fixture。
通过执行以下命令运行测试 −
pytest -k divisible -v
以上命令将生成以下结果−
test_div_by_13.py::test_divisible_by_13 PASSED
test_div_by_3_6.py::test_divisible_by_3 PASSED
test_div_by_3_6.py::test_divisible_by_6 FAILED
============================================== FAILURES
==============================================
________________________________________ test_divisible_by_6
_________________________________________
input_value = 39
def test_divisible_by_6(input_value):
> assert input_value % 6 == 0
E assert (39 % 6) == 0
test_div_by_3_6.py:7: AssertionError
========================== 1 failed, 2 passed, 6 deselected in 0.09 seconds
==========================
测试将在相同的文件中查找 fixture。由于在该文件中未找到 fixture,它将在 conftest.py 文件中查找 fixture。在找到它之后,将调用 fixture 方法,并将结果返回给测试的输入参数。