У меня есть множество случаев, которые я хочу протестировать на одной функции.
Скажем:
@pytest.mark.unittest
def test_simple_test_id_odd():
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
for number in numbers:
assert number % 2 == 0
Когда я запускаю это, он останавливается на первом номере с ошибкой. Я хочу, чтобы тест прошел по всем числам и проверил каждое из них.
Я не хочу писать тест для каждого числа, это не имеет смысла, это слишком долго.
Как я могу проверить все числа и вызвать ошибку для каждого из них, которые не сработали?
В этом сценарии я бы предпочел использовать pytest.mark.parametrize:
import pytest
@pytest.mark.parametrize("number", [1, 2, 3, 4, 5, 6, 7, 8])
def test_simple_test_id_odd(number):
assert number % 2 != 0
Напишите параметризованный тест: docs.pytest.org/en/stable/parametrize.html