Junior — Middle
110
როგორ ხორციელდება რესურსების განთავისუფლება pytest-ში ტესტის დასრულების შემდეგ?
კომპანიებმა სადაც სთხოვეს
Леста
პასუხი AI-სგან
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 предоставляет удобные механизмы для гарантированного освобождения ресурсов после выполнения тестов.