Назад к вопросам
Junior — Middle
65
Какие области видимости ты применяешь для фикстур в процессе тестирования?
Ответ от нейросети
sobes.tech AI
В pytest для фикстур можно задавать несколько областей видимости (scope), которые определяют, как часто будет создаваться и уничтожаться фикстура:
- function — фикстура создаётся для каждого теста (по умолчанию).
- class — фикстура создаётся один раз для каждого тестового класса.
- module — фикстура создаётся один раз для каждого модуля (файла с тестами).
- package — фикстура создаётся один раз для каждого пакета.
- session — фикстура создаётся один раз за всю сессию тестирования.
Выбор области видимости зависит от того, насколько дорого создавать фикстуру и насколько она должна быть изолирована. Например, если нужно подготовить данные для каждого теста — function, если инициализация дорогая и данные можно переиспользовать — session или module.
Пример фикстуры с областью видимости module:
import pytest
@pytest.fixture(scope="module")
def db_connection():
conn = create_connection()
yield conn
conn.close()