Какие знаешь scope fixture в Pytest
Python
Senior
Без компании
Какие знаешь 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
```
Здесь `db_connection` будет создана один раз для всего модуля, а не для каждого теста отдельно. Это полезно для ресурсоемких операций.