Fixtures
Fixtures — это функции, выполняемые pytest до (а иногда и после) фактических тестовых функций. Код в фикстуре может делать все, что вам необходимо. Вы можете использовать Fixtures, чтобы получить набор данных для тестирования. Вы можете использовать Fixtures, чтобы получить систему в известном состоянии перед запуском теста. Fixtures также используются для получения данных для нескольких тестов.
Example
Вот простой пример фикстуры, который возвращает число:
Фикстуры отлично подходят для хранения данных и передачи их в тесты!
Фикстуры в первую очередь ищутся в том же файле, что и сам тест, потом по всем conftest.py (это модуль, фикстуры из которого доступны всем тестам в том же каталоге, импортировать его не надо!).
Пример текстуры с подключением к db
Здесь используем Built-in фикстуру — tmpdir. Следовательно, фикстуры могут переиспользоваться.
Параметры фикстур
Параметр Scope
Ниже приведено краткое описание каждого значения Scope:
scope='function'
Выполняется один раз для каждой функции теста. Часть setup запускается перед каждым тестом с помощью fixture. Часть teardown запускается после каждого теста с использованием fixture. Это область используемая по умолчанию, если параметр scope не указан.
scope='class'
Выполняется один раз для каждого тестового класса, независимо от количества тестовых методов в классе.
scope='module'
Выполняется один раз для каждого модуля, независимо от того, сколько тестовых функций или методов или других фикстур при использовании модуля.
scope='session'
Выполняется один раз за сеанс. Все методы и функции тестирования, использующие фикстуру области сеанса, используют один вызов setup и teardown.
Параметр Autouse
Если мы хотим, чтобы фикстура применялась к каждому тесту без доп указаний, используем параметр autouse:
Параметр Name
Чтобы переименовать фикстуру:
Built-in fixtures
tmpdir, tmpdir_factory — фикстура для работы с временными директориями (для создания файлов)
pytestconfig — фикстура для управления аргументами pytest
capsys — работа с stdin и stdout, а так же с отключением захвата этих потоков
monkeypatch — позволяет изменить параметры среды и текущий каталог во время теста
Last updated