Junior — Middle
100
Können Sie erklären, was der Begriff 'Scope' im Kontext von Fixtures bedeutet?
Unternehmen wurden gefragt
Antwort von AI
sobes.tech KI
В контексте фикстур (например, в pytest) термин "скоуп" (scope) определяет область видимости и время жизни фикстуры — то есть, как часто она создаётся и уничтожается.
Основные варианты скоупа:
- function (по умолчанию): фикстура создаётся заново для каждой тестовой функции.
- class: фикстура создаётся один раз на каждый класс тестов.
- module: фикстура создаётся один раз на каждый модуль (файл с тестами).
- session: фикстура создаётся один раз на всю сессию запуска тестов.
Например, фикстура с scope='module' будет инициализирована один раз перед запуском всех тестов в модуле и уничтожена после их завершения. Это полезно для дорогих по времени операций, которые можно переиспользовать.
Пример:
import pytest
@pytest.fixture(scope='module')
def db_connection():
conn = create_connection()
yield conn
conn.close()