Назад к вопросам
Senior
11
Что такое фикстура в pytest? Как реализуешь teardown?
Компании, где спрашивали
Tangem
Ответ от нейросети
sobes.tech AI
В pytest фикстура — это функция, которая предоставляет подготовленные данные или окружение для тестов. Она позволяет избежать дублирования кода и управлять настройкой и очисткой ресурсов.
Для реализации teardown (очистки после теста) в фикстуре используется конструкция с оператором yield:
import pytest
@pytest.fixture
def resource():
# setup
res = acquire_resource()
yield res
# teardown
release_resource(res)
Когда тест использует эту фикстуру, код до yield выполняется перед тестом, а код после yield — после завершения теста, даже если тест упал с ошибкой.
Также можно использовать request.addfinalizer для регистрации функции очистки, но yield считается более удобным и читаемым способом.