Sobes.tech
Senior
56

pytest-те фикстура дегеніміз не? Төмендетуді қалай жүзеге асырасыз?

Сұралған компаниялар
Tangem

AI-дан жауап

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 считается более удобным и читаемым способом.