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

Python Middle Без компании
Какие бывают параметры scope в fixture в pytest
Ответы
В pytest фикстуры могут иметь разные области видимости (scope), которые определяют, как часто фикстура будет создаваться и уничтожаться: - `function` (по умолчанию) - фикстура создается и уничтожается для каждой тестовой функции - `class` - фикстура создается один раз для всего класса тестов - `module` - фикстура создается один раз для модуля (файла) - `package` - фикстура создается один раз для пакета (директории) - `session` - фикстура создается один раз для всей сессии тестирования Пример: ``` 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, тем меньше накладных расходов, но нужно учитывать, что состояние фикстуры будет сохраняться между тестами.