Jenkins "Плагин следующего поколения" не может проанализировать отчет Pytest JUnit xml - PullRequest
1 голос
/ 23 апреля 2020

У меня возникли некоторые проблемы с отчетом xml, созданным Pytest 5.4.1.

Отчет создается с помощью следующей команды

python -m pytest --junitxml report.xml

Когда Jenkins пытается выполнить синтаксический анализ это через Warnings Next Generation Plugin 8.1.0 Я получаю следующее исключение:

[JUnit] [-ERROR-] java.lang.RuntimeException: "type" not found in "<testcase classname="...

Это похоже на каждый testcase элемент в в отчете отсутствует атрибут type .

Есть ли простой способ добавить атрибут type в каждый элемент testcase? Я знаю, что могу использовать прибор record_xml_attribute , но как мне применить его к каждому тесту в моем проекте?

def test_function(record_xml_attribute):
    record_xml_attribute("type", "I'll figure what goes here later")
    assert True

1 Ответ

1 голос
/ 23 апреля 2020

Вы можете определить автоматически используемый прибор (при условии, что вам всегда нужен один и тот же тип):

@pytest.fixture(autouse=True)
def add_type(record_xml_attribute):
    record_xml_attribute("type", "Whatever you figured out")

Это добавит атрибут type к каждому тестовому сценарию в отчете.

Обратите внимание, что прибор должен находиться в области, включающей все тесты, которые должны быть адаптированы, например, в conftest.py в каталоге root всех ваших тестов, если у вас есть более одного тестового файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...