Я использую pytest, и в тестовой функции, которую я использую, у меня есть несколько условий, которые я хотел бы проверить с помощью assert, а затем в конце теста получить список тех, которые потерпели неудачу.
К сожалению, если утверждение не выполнено, тест немедленно прерывается и не проверяет другие условия.Можно ли использовать assert, который не нарушает поток программы?
import pytest
def test_example():
value1 = 1
value2 = 0
value3 = 0
assert value1 == 1
assert value2 == 2
assert value3 == 3
Вывод
================================== FAILURES ===================================
________________________________ test_example _________________________________
def test_example():
value1 = 1
value2 = 0
value3 = 0
assert value1 == 1
> assert value2 == 2
E assert 0 == 2
test_demo.py:50: AssertionError
========================== 1 failed in 0.21 seconds ===========================
Как вы можете видеть после сбоя второго утверждения, он перестает работать,Есть способ обойти это.Я решил написать операторы if, чтобы проверить каждое условие, и если они не пройдены, увеличить счетчик и, в конце, проверить, равен ли этот счетчик 0, но это не будет отслеживать, какой тест не удался.