Учебники

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.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, и результат возвращается во входной аргумент теста.