Как записать тестовые шаги в сгенерированный отчет html с pytest-html?
Я не могу найти способ добавить строку в мой отчет HTML, которая представляет мои шаги теста.
Я увидел в https://pypi.org/project/pytest-html/ что мне следует попробовать:
extra.text('Add some simple Text')
но кажется, что это не работает.
from pytest_html import extras
class FirstFeatureTests:
def setup_class(self):
print("\n------------ in setup_class ------------")
def teardown_class(self):
print("------------ in teardown_class ------------")
@mark.example
def test_1_first_feature(self):
print("starting test !!!!!")
extras.text("step 1: ")
extras.text('step 2: ')
assert True
Я ожидаю, что каждый тест будет содержать шаги теста, представленные в виде строки с информативным описанием.
есть ли способ сделать это?
2 ответа
Allure, безусловно, лучше подходит для ваших нужд, поскольку в нем есть все функции отчетов о тестировании (этапы, функции, истории и т. Д.) Для pytest. Но он написан на Java, и вам нужно установить Pytest Allure, а также локальный двоичный файл для его работы. И вам, возможно, придется прыгнуть через несколько обручей, чтобы заставить его работать в существующей базе кода Pytest.
Если вы хотите использовать pytest-html для генерации тестовых шагов, это возможное решение:
# Contents of top level conftest.py
import pytest
@pytest.fixture(scope='session', autouse=True)
def step(request):
@pytest.mark.optionalhook
def pytest_html_results_table_html(request, report, data):
data.append(html.div(str(request.param), class_='Step'))
#Contents of fixture or test code
def test_a(step):
step("abc")
assert True
Я не запускал код локально, но именно так должен выглядеть финальный код для добавления шага.
Я бы посоветовал вам попробовать allure вместо pytest-html в этом случае. он легко интегрируется с pytest и API действительно удобен в использовании.
проверьте этот репозиторий для получения дополнительной информации.
и этот для примеров использования.