Встречается на собеседованиях • сегодня
Как сделать очистку ресурсов после выхода из теста в pytest
Для очистки ресурсов в pytest можно использовать фикстуры с yield или addfinalizer.
1. Фикстура с yield:
python
import pytest
@pytest.fixture
def resource():
res = initialize_resource() # Инициализация ресурса
yield res # Передача ресурса в тест
cleanup_resource(res) # Очистка после теста2. Фикстура с addfinalizer:
python
import pytest
@pytest.fixture
def resource(request):
res = initialize_resource()
request.addfinalizer(lambda: cleanup_resource(res))
return resРазница:
yieldудобнее для простых случаев.addfinalizerпозволяет добавлять несколько финализаторов и работает даже еслиsetupупал.
Пример с контекстным менеджером:
python
@pytest.fixture
def temp_file():
with open("temp.txt", "w") as f:
yield f # Файл закроется автоматически после теста
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы