Встречается на собеседованиях • сегодня

Какие бывают параметры scope в fixture в pytest

В pytest фикстуры могут иметь разные области видимости (scope), которые определяют, как часто фикстура будет создаваться и уничтожаться:

  1. function (по умолчанию) - фикстура создается и уничтожается для каждой тестовой функции
  2. class - фикстура создается один раз для всего класса тестов
  3. module - фикстура создается один раз для модуля (файла)
  4. package - фикстура создается один раз для пакета (директории)
  5. session - фикстура создается один раз для всей сессии тестирования

Пример:

python
import pytest

@pytest.fixture(scope='module')
def db_connection():
    conn = create_db_connection()  # создается один раз для модуля
    yield conn
    conn.close()  # закрывается после всех тестов модуля

def test_query1(db_connection):
    assert db_connection.execute("SELECT 1") == 1

def test_query2(db_connection):
    assert db_connection.execute("SELECT 2") == 2

Выбор scope влияет на производительность тестов - чем шире scope, тем меньше накладных расходов, но нужно учитывать, что состояние фикстуры будет сохраняться между тестами.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы