До запуска теста параметры передают fixture через indirect-параметризацию и request.param; для динамического создания и teardown удобна factory-fixture с учётом ресурсов.
Как передать данные из теста в фикстуру pytest, в том числе до запуска теста и для teardown после него?
До запуска теста параметры передают fixture через indirect-параметризацию и request.param; для динамического создания и teardown удобна factory-fixture с учётом ресурсов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
До запуска теста параметры передают fixture через indirect-параметризацию и request.param; для динамического создания и teardown удобна factory-fixture с учётом ресурсов.
Например, fixture может вернуть функцию create_user, которая создаёт пользователя и добавляет его ID в локальный список. После yield fixture удаляет все созданные ID. Тогда тест передаёт данные при вызове фабрики, а cleanup не зависит от успешного завершения assertions. Если значение известно заранее, используют @pytest.mark.parametrize(..., indirect=True). Нельзя передать обычную локальную переменную из уже выполняющегося теста назад в завершившийся setup без явно предусмотренного общего объекта или фабрики.