Маркеры(mark)

Иногда вы хотите быть гибкими с тестами, которые вы хотите выполнить. Pytest позволяет это сделать с помощью декоратора маркеров @pytest.mark( Pytest docs ).

import pytest


@pytest.mark.webtest
def test_send_http():
    pass  # perform some webtest test for your app

Allure позволяет помечать ваши тесты аналогичным образом с помощью 3-х типов декораторов маркировки, которые позволяют структурировать представление вашего отчета:

  1. Маркеры в стиле BDD, обозначающие эпики, особенности и истории.

  2. Severity маркеры

  3. Custom маркеры

Маркеры BDD

Есть два декоратора: @allure.featureи @allure.storyдля маркировки ваших тестов в соответствии с разбивкой Feature/Story, характерной для вашего проекта ( для получения дополнительной информации см. статью BDD в Википедии ). Чтобы отметить, что какой-либо объект или история относятся к эпопее, используйте имя, начинающееся с epic_префикса.

тесты.py

import allure


def test_without_any_annotations_that_wont_be_executed():
    pass


@allure.story('epic_1')
def test_with_epic_1():
    pass


@allure.story('story_1')
def test_with_story_1():
    pass

@allure.story('story_2')
def test_with_story_2():
    pass


@allure.feature('feature_2')
@allure.story('story_2')
def test_with_story_2_and_feature_2():
    pass

Вы можете использовать следующие параметры командной строки, чтобы указать различные наборы тестов для выполнения, передавая список значений, разделенных запятыми:

  1. --allure-epics

  2. --allure-features

  3. --allure-stories

Например:

Маркеры серьезности(Severity)

Чтобы отметить ваши тесты по уровню серьезности, вы можете использовать @allure.severityдекоратор. Он принимает allure.severity_levelзначение перечисления в качестве аргумента.

Декоратор серьезности можно применять к функциям, методам или целым классам.

При использовании --allure-severitiesпараметра командной строки со списком уровней серьезности, разделенных запятыми, будут запускаться только тесты с соответствующими уровнями серьезности.

Last updated

Was this helpful?