Junior — Middle
116
Pouvez-vous expliquer ce que signifie le terme 'scope' dans le contexte des fixtures?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
В контексте фикстур (например, в pytest) термин "скоуп" (scope) определяет область видимости и время жизни фикстуры — то есть, как часто она создаётся и уничтожается.
Основные варианты скоупа:
- function (по умолчанию): фикстура создаётся заново для каждой тестовой функции.
- class: фикстура создаётся один раз на каждый класс тестов.
- module: фикстура создаётся один раз на каждый модуль (файл с тестами).
- session: фикстура создаётся один раз на всю сессию запуска тестов.
Например, фикстура с scope='module' будет инициализирована один раз перед запуском всех тестов в модуле и уничтожена после их завершения. Это полезно для дорогих по времени операций, которые можно переиспользовать.
Пример:
import pytest
@pytest.fixture(scope='module')
def db_connection():
conn = create_connection()
yield conn
conn.close()