Loading image…

Почему цикл внутри теста скрывает часть ошибок



Тест перебирает десять входов и проверяет результат через assert. Если третий случай падает, оставшиеся семь до проверки не доходят. В отчёте появляется одна ошибка, а состояние остальных случаев неизвестно.

pytest.mark.parametrize превращает каждую пару «вход — ожидаемый результат» в отдельный тест. Без режима остановки на первой ошибке pytest проверит все случаи и покажет, какие именно сломались. Через ids им можно дать понятные имена.

Подготовку ресурсов удобно вынести в fixture с yield: код после yield выполнит очистку. Для ожидаемой ошибки используйте pytest.raises с конкретным типом и match, если важен текст сообщения. Иначе случайный ValueError из другой части функции может сделать тест зелёным.

#python #тестирование
Views: 63
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go