Sobes.tech
Назад к вопросам
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()