Back to questions
Aston
Junior — Middle
75
Можете объяснить, что означает термин 'скоуп' в контексте фикстур?
Companies where asked
Answer from AI
sobes.tech AI
В контексте фикстур (например, в pytest) термин "скоуп" (scope) определяет область видимости и время жизни фикстуры — то есть, как часто она создаётся и уничтожается.
Основные варианты скоупа:
- function (по умолчанию): фикстура создаётся заново для каждой тестовой функции.
- class: фикстура создаётся один раз на каждый класс тестов.
- module: фикстура создаётся один раз на каждый модуль (файл с тестами).
- session: фикстура создаётся один раз на всю сессию запуска тестов.
Например, фикстура с scope='module' будет инициализирована один раз перед запуском всех тестов в модуле и уничтожена после их завершения. Это полезно для дорогих по времени операций, которые можно переиспользовать.
Пример:
import pytest
@pytest.fixture(scope='module')
def db_connection():
conn = create_connection()
yield conn
conn.close()