Несколько утверждений на тест являются в некотором роде антишаблоном - в идеале тесты должны быть написаны так, чтобы они утверждали только по одному аспекту. Это позволяет комплекту тестов иметь достаточную степень детализации, чтобы неудачный тест мог точно идентифицировать любую проблему.
Если вы утверждаете в ряде случаев, этого часто можно достичь с помощью параметризации (например, pytest.mark.parametrize
), которая позволяет тестирование на основе данных. Это исключает повторение тестового кода, генерируя несколько тестов из одного.
Утверждение на разных этапах теста может быть признаком того, что тест тестирует слишком много вещей одновременно, в этом случае я предлагаю попытаться разделить утверждения на отдельные тесты, каждый с описательными именами. Однако, если вы действительно хотите протестировать этапы более длительного процесса с накоплением сбоев (и это возможно / безопасно сделать), это ограниченная поддержка в плагине pytest-check .