Параметризация тестов позволяет запускать одну и ту же функцию теста с несколькими разными входными данными, избегая дублирования кода и улучшая покрытие тестами.
Вместо того чтобы писать отдельные тестовые функции для каждого сценария, параметризация позволяет определить все случаи в одном месте, сохраняя тестовую базу чистой и удобной в поддержке.
Используй декоратор @pytest.mark.parametrize, передав:
import pytest
@pytest.mark.parametrize("input,expected", [(1, 1), (2, 4), (3, 9)])
def test_square(input, expected):
assert input ** 2 == expected
"input,expected" определяет названия параметров, которые получит функция(1, 1), (2, 4), (3, 9) представляет отдельный тестовый случайtest_square три раза — по одному разу для каждого кортежаtest_square[1-1] PASSED
test_square[2-4] PASSED
test_square[3-9] PASSED
Каждый запуск отображается отдельно, что упрощает определение того, какой именно входной параметр вызвал ошибку.
Декоратор @pytest.mark.parametrize принимает названия параметров в виде строки, разделённой запятыми, и список кортежей, где каждый кортеж представляет один полный тестовый случай со всеми значениями параметров.
Новый — ещё не проверен сообществом
Вы