Вступить в клуб →
лёгкаявопросАвтотесты и CI/CD

Цикл по ролям внутри одного теста против параметризации: что меняется в результате

В наборе есть тест:

def test_login_roles():
    for role in ["admin", "manager", "guest"]:
        assert login(role).status_code == 200

Коллега предлагает переписать его через @pytest.mark.parametrize.

Что это даст?

  • Разницы нет: pytest в любом случае посчитает это одним тестом с тремя проверками внутри
  • Тесты пойдут быстрее за счёт параллельного выполнения параметров внутри одного теста
  • Каждая роль станет отдельным тестом: падение на admin не скроет результат manager и guest, а в отчёте будет видно, что именно упало
  • Можно будет не писать assert: pytest сам сравнит результаты вызовов между параметрами

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела