Учебники

Pytest — Xfail / Пропустить тесты

В этой главе мы узнаем о тестах Skip и Xfail в Pytest.

Теперь рассмотрим следующие ситуации —

  • Тест не актуален в течение некоторого времени по ряду причин.
  • Внедряется новая функция, и мы уже добавили тест для этой функции.

В этих ситуациях у нас есть возможность пропустить тест или пропустить тесты.

Pytest выполнит тест xfailed, но он не будет считаться частью неудачной или пройденной проверки. Детали этих тестов не будут напечатаны, даже если тест не пройден (помните, что pytest обычно печатает данные о неудачном тесте). Мы можем xfail тесты, используя следующий маркер —

@pytest.mark.xfail

Пропуск теста означает, что тест не будет выполнен. Мы можем пропустить тесты, используя следующий маркер —

@pytest.mark.skip

Позже, когда тест становится актуальным, мы можем удалить маркеры.

Отредактируйте test_compare.py, мы уже должны включить маркеры xfail и skip —

import pytest
@pytest.mark.xfail
@pytest.mark.great
def test_greater():
   num = 100
   assert num > 100

@pytest.mark.xfail
@pytest.mark.great
def test_greater_equal():
   num = 100
   assert num >= 100

@pytest.mark.skip
@pytest.mark.others
def test_less():
   num = 100
   assert num < 200

Выполните тест, используя следующую команду —

pytest test_compare.py -v

После выполнения вышеуказанная команда сгенерирует следующий результат —