Sobes.tech
Junior — Middle
109

Welche Methoden werden in pytest verwendet, um Ressourcen nach Abschluss des Tests freizugeben?

Unternehmen wurden gefragt
Леста

Antwort von AI

sobes.tech KI

В pytest освобождение ресурсов после теста обычно реализуется с помощью фикстур с использованием ключевого слова yield или функции request.addfinalizer.

  1. Фикстуры с yield: Код до yield выполняется перед тестом, а код после — после теста, для очистки ресурсов.
import pytest

@pytest.fixture
def resource():
    # подготовка ресурса
    res = open('file.txt', 'w')
    yield res
    # освобождение ресурса
    res.close()
  1. addfinalizer: Можно зарегистрировать функцию очистки, которая выполнится после теста.
@pytest.fixture
def resource(request):
    res = open('file.txt', 'w')
    def cleanup():
        res.close()
    request.addfinalizer(cleanup)
    return res

Таким образом, pytest предоставляет удобные механизмы для гарантированного освобождения ресурсов после выполнения тестов.