В yield-фикстуре pytest код до yield подготавливает ресурс и передаёт его тесту, а код после — освобождает ресурс после использования. Scope определяет срок жизни экземпляра фикстуры.
Зачем в фикстурах Pytest нужен yield?
В yield-фикстуре pytest код до yield подготавливает ресурс и передаёт его тесту, а код после — освобождает ресурс после использования. Scope определяет срок жизни экземпляра фикстуры.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В yield-фикстуре pytest код до yield подготавливает ресурс и передаёт его тесту, а код после — освобождает ресурс после использования. Scope определяет срок жизни экземпляра фикстуры.
Это позволяет держать подготовку и очистку рядом. Если ошибка возникла до достижения yield, обычная часть после него не выполняется: уже созданные ресурсы нужно защищать отдельно. При падении самого теста teardown обычно выполняется, но аварийное завершение процесса не даёт такой гарантии.
Источник: docs.pytest.org.