← Назад ко всем вопросам

Как пропустить тест в PyTest

1️⃣ Как кратко ответить

В PyTest тест можно пропустить, используя декоратор @pytest.mark.skip или функцию pytest.skip(). Декоратор применяется к тестовой функции, чтобы пропустить её выполнение, а функция pytest.skip() используется внутри теста для пропуска при определённых условиях.

2️⃣ Подробное объяснение темы

В процессе автоматизированного тестирования иногда возникает необходимость пропустить выполнение определённых тестов. Это может быть связано с временной недоступностью тестируемой функциональности, наличием известных багов или другими причинами. PyTest предоставляет несколько способов для пропуска тестов.

Декоратор @pytest.mark.skip

Этот декоратор используется для того, чтобы пропустить тестовую функцию без её выполнения. Он применяется непосредственно перед определением тестовой функции. Это полезно, когда вы заранее знаете, что тест не должен выполняться.

import pytest
​
@pytest.mark.skip(reason="Тест временно отключен из-за известной проблемы")
def test_example():
    assert 1 == 1
  • @pytest.mark.skip: Декоратор, который указывает PyTest пропустить выполнение теста.
  • reason: Параметр, который позволяет указать причину пропуска теста. Это полезно для документации и понимания, почему тест был пропущен.

Функция pytest.skip()

Функция pytest.skip() позволяет пропустить тест во время его выполнения. Это полезно, когда решение о пропуске теста зависит от выполнения определённых условий.

import pytest
​
def test_example():
    if not some_condition():
        pytest.skip("Условие не выполнено, тест пропущен")
    assert 1 == 1
​
def some_condition():
    # Здесь может быть любая логика, определяющая условие
    return False
  • pytest.skip("Условие не выполнено, тест пропущен"): Функция, вызываемая внутри теста для его пропуска. Сообщение в скобках объясняет причину пропуска.
  • some_condition(): Пример функции, которая возвращает False, что приводит к пропуску теста. Это может быть любая логика, например, проверка конфигурации или состояния системы.

Применение

Пропуск тестов полезен в следующих ситуациях:

  • Временная недоступность тестируемой функциональности.
  • Известные баги, которые ещё не исправлены.
  • Тесты, которые зависят от внешних ресурсов, временно недоступных.

Использование пропуска тестов помогает поддерживать актуальность и стабильность тестового набора, избегая ложных срабатываний и ненужных ошибок в отчётах.

Тема: PyTest
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки