Junior — Middle
109
Pode explicar o que significa o termo 'escopo' no contexto de fixtures?
Empresas quando solicitadas
Resposta da 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()