Назад к вопросам
Junior — Middle
78
Какими способами в pytest осуществляют освобождение ресурсов после завершения теста?
Компании, где спрашивали
Леста
Ответ от нейросети
sobes.tech AI
В pytest освобождение ресурсов после теста обычно реализуется с помощью фикстур с использованием ключевого слова yield или функции request.addfinalizer.
- Фикстуры с yield:
Код до
yieldвыполняется перед тестом, а код после — после теста, для очистки ресурсов.
import pytest
@pytest.fixture
def resource():
# подготовка ресурса
res = open('file.txt', 'w')
yield res
# освобождение ресурса
res.close()
- addfinalizer: Можно зарегистрировать функцию очистки, которая выполнится после теста.
@pytest.fixture
def resource(request):
res = open('file.txt', 'w')
def cleanup():
res.close()
request.addfinalizer(cleanup)
return res
Таким образом, pytest предоставляет удобные механизмы для гарантированного освобождения ресурсов после выполнения тестов.