Pytest-Conftest.py


我们可以在此文件中定义夹具函数,以便可以跨多个测试文件访问它们。

创建一个新文件conftest.py并将以下代码添加到其中 -

import pytest

@pytest.fixture
def input_value():
   input = 39
   return input

编辑test_div_by_3_6.py以删除固定功能 -

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.pytest_div_by_13.py使用conftest.py中定义的固定装置。

通过执行以下命令来运行测试 -

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
==========================

测试将在同一文件中查找固定装置。由于在文件中找不到固定装置,它将检查 conftest.py 文件中的固定装置。找到它后,调用固定方法并将结果返回到测试的输入参数。