Маркеры(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-х типов декораторов маркировки, которые позволяют структурировать представление вашего отчета:
Маркеры в стиле BDD, обозначающие эпики, особенности и истории.
Severity маркеры
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
Вы можете использовать следующие параметры командной строки, чтобы указать различные наборы тестов для выполнения, передавая список значений, разделенных запятыми:
--allure-epics
--allure-features
--allure-stories
Например:
$ pytest tests.py --allure-stories story_1,story_2
collected 5 items
tests.py ... [100%]
============================== 3 passed in 0.01 seconds ==========================
$ pytest tests.py --allure-features feature2 --allure-stories story2
collected 5 items
tests.py ... [100%]
=============================== 2 passed in 0.01 seconds =========================
Маркеры серьезности(Severity)
Чтобы отметить ваши тесты по уровню серьезности, вы можете использовать @allure.severity
декоратор. Он принимает allure.severity_level
значение перечисления в качестве аргумента.
import allure
def test_with_no_severity_label():
pass
@allure.severity(allure.severity_level.TRIVIAL)
def test_with_trivial_severity():
pass
@allure.severity(allure.severity_level.NORMAL)
def test_with_normal_severity():
pass
@allure.severity(allure.severity_level.NORMAL)
class TestClassWithNormalSeverity(object):
def test_inside_the_normal_severity_test_class(self):
pass
@allure.severity(allure.severity_level.CRITICAL)
def test_inside_the_normal_severity_test_class_with_overriding_critical_severity(self):
pass
Декоратор серьезности можно применять к функциям, методам или целым классам.
При использовании --allure-severities
параметра командной строки со списком уровней серьезности, разделенных запятыми, будут запускаться только тесты с соответствующими уровнями серьезности.
$ pytest tests.py --allure-severities normal,critical
collected 5 items
bdd_annotations_demo/test_severity_labels.py ... [100%]
================================ 3 passed in 0.01 seconds =======================
Last updated
Was this helpful?