Как записать тестовые шаги в сгенерированный отчет html с pytest-html? - PullRequest
0 голосов
/ 24 декабря 2018

Я не могу найти способ добавить в свой 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 ]

0 голосов
/ 03 января 2019

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

Я не запускал код локально, но именно так должен выглядеть финальный код для шага добавления.

0 голосов
/ 01 января 2019

Я бы предложил вам попробовать allure вместо pytest-html в этом случае.он легко интегрируется с pytest и API действительно удобен в использовании.

проверьте этот репозиторий для получения дополнительной информации.

и этот для примеров использования.

...