Мы можем определить функции фикстуры в этом файле, чтобы сделать их доступными для нескольких тестовых файлов.
Создайте новый файл 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.py и test_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. При его обнаружении вызывается метод fixture, и результат возвращается во входной аргумент теста.