В Pytest есть возможность ставить маркеры на отдельные тесты (они могут быть в одном файле или в разных).
Это позволит:
- запускать тесты только с определенным маркером.
- пропускать тесты с определенным маркером.
ПРИМЕР 1
Нам надо создать список тестов, которые будут запускаться ежедневно - Smoke tests.
import pytest
@pytest.mark.smoke
def test_user_should_see_icon_on_homepages(driver): homepage.open(driver) assert homepage.is_icon_displayed(driver), "The icon is not displayed on Homepage"
Вначале мы импортируем pytestimport pytest
Добавляем маркер с именем smoke перед каждым тестом, который нужно запускать каждый день.
@pytest.mark.smoke
Чтобы запустить только тесты с маркером smoke, в Терминале вводим:
Если нужно, чтобы запустились все тесты, кроме SmokeМожно выбрать только тесты, которые в своем названии содержат определенное слово (например "color") - запустятся только эти тесты.Чтобы запусить все тесты, которые в названии не содержат ключевое слово "color", вводим такой текст:Можно запустить тесты по двум ключевым словам. Например, запускаем тесты, названия которых содержат слова "color" и "hover" (запустятся все
тесты, которые содержат хотя бы одно из ключевых слов).
ПРИМЕР 2
Нужно исключить прогонку тестов для Windows, то есть тех тестов, которые нужно проверять только на Винде.
@pytest.mark.skipif(pytest.mark._config.getoption('os') == 'mac', reason='This test is for Windows only')Добавляя такую строку перед тестом, мы добавляем маркер skipif (пропускать если).Тест будет пропускаться, если выбранная для тестирования операционная система Mac(('os') == 'mac')
Также можно установить маркер для сразу для нескольких функций, присвоих их определенному классу. В этом случае маркер ставится на класс.
ПРИМЕР 3
Если нужно полностью пропустить данный тест (заскипать)
@pytest.mark.skip(reason='Temporary skipped because of ticket FF-382')
Комментариев нет:
Отправить комментарий