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 (夹具)。 p>
通过执行以下命令来运行测试 −
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 方法并将结果返回到测试的输入参数。