Прослушиватель Testng для соответствия XML-схеме Apache Ant JUnit

В рамках набора тестов автоматизации testng я хотел бы автоматически отправлять результаты из jenkins в testrail. В настоящее время этот плагин установлен на моем сервере jenkins: https://github.com/jenkinsci/testrail-plugin

В прочтении указано, что выходные данные должны соответствовать схеме junit: https://github.com/windyroad/JUnit-Schema/blob/master/JUnit.xsd

У меня есть ссылка Как получу ли я один отчет junit от TestNG для всех моих тестовых случаев? и добавил

 <listeners>
    <listener class-name="org.testng.reporters.JUnitXMLReporter"></listener>
</listeners>

моим слушателям; однако это, похоже, не создает файл в правильном формате, поскольку это приводит к сбою jenkins с сообщением:

Загрузка результатов в TestRail. Ошибка отправки результатов в TestRail. Публикация в index.php?/api/v2/add_results_for_cases/236 вернула ошибку! Ответ от TestRail: {"ошибка":"Поле :results не может быть пустым (требуется один результат)"} Шаг сборки "TestRail Plugin" помечен как сбой сборки. Завершено: FAILURE.

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

Спасибо вам за помощь.


person swilliz    schedule 27.07.2017    source источник
comment
Я не думаю, что что-то существует прямо сейчас. Но я думаю, что могу построить что-то, что сработает для вас. Держитесь там до этих выходных. Я должен быть в состоянии получить что-нибудь к этим выходным.   -  person Krishnan Mahadevan    schedule 28.07.2017
comment
@KrishnanMahadevan, это было бы очень признательно!   -  person swilliz    schedule 29.07.2017
comment
Привет @KrishnanMahadevan Я не могу получить вывод для файлов конфигурации xml, отформатированных следующим образом: <suite name="Integration smoke tests" verbose="10" preserve-order="true"> <test name="End2End smoke tests" preserve-order="true"> <packages> <package name="com.end2end.*"></package> </packages> </test> <test name="Services" preserve-order="true"> <packages> <package name="com.services.*"></package> </packages> </test> </suite>   -  person swilliz    schedule 07.08.2017
comment
@KrishnanMahadevan `‹suite name=End2End дымовые тесты verbose=10 save-order=true› ‹test name=End2End дымовые тесты save-order=true› ‹classes› ‹class name=classpath›‹/class› ‹class name=classpath ›‹/класс› ‹имя класса=путь к классу›‹/класс› ‹имя класса=путь к классу›‹/класс› ‹!--‹имя класса=путь к классу›‹/класс›--› ‹имя класса=путь к классу›‹/ class› ‹class name=classpath›‹/class› ‹class name=classpath›‹/class› ‹/classes› ‹/test› ‹/suite›   -  person swilliz    schedule 07.08.2017
comment
Не уверен, что вы имеете в виду, я не могу получить вывод. Что это за xml-файл? Мне кажется, что это xml-файл пакета TestNG. Разве ваш вопрос не касался XML-файла JUnit для результатов теста, который соответствует XML-схеме Apache Ant JUnit?   -  person Krishnan Mahadevan    schedule 08.08.2017
comment
Привет @KrishnanMahadevan, я хотел бы создать выходные данные в стиле junit для запуска файлов пакета TestNG из проекта maven. Когда я применяю прослушиватель к проекту maven, вывод создается, как и ожидалось, для некоторых наборов TestNG; однако для наборов, отформатированных как в приведенных выше примерах, вывод не создается. Это может быть проблема в моем коде, а не в вашем. Я не уверен из-за того, как ваш слушатель работает для меня в некоторых случаях.   -  person swilliz    schedule 08.08.2017
comment
Я предполагаю, что это нужно будет перевести в автономный режим как отдельный вопрос, или, возможно, вы можете зарегистрировать проблему в моей библиотеке и включить всю информацию, включая некоторый пример кода, который можно использовать для воспроизведения проблемы. Поскольку он работает для некоторых ваших пакетов, я считаю, что этот вопрос можно закрыть. Пожалуйста, примите мой ответ   -  person Krishnan Mahadevan    schedule 09.08.2017
comment
@KrishnanMahadevan хорошо. Спасибо за труд, который вы поставили!   -  person swilliz    schedule 09.08.2017


Ответы (1)


Я использовал файл xsd, которым поделились в вопросе, чтобы создать репортер TestNG, соответствующий xsd.

Чтобы использовать этот репортер, добавьте зависимость, как показано ниже.

<dependency>
    <groupId>com.rationaleemotions</groupId>
    <artifactId>junitreport</artifactId>
    <version>1.0.0</version>
</dependency>

Этот репортер использует подход загрузчика служб к проводу сам по себе. Поэтому его не нужно добавлять явно через тег <listeners> (или) аннотацию @Listeners.

Подробности можно найти здесь

person Krishnan Mahadevan    schedule 29.07.2017
comment
Шикарный Кришнан! Может стоит добавить в проект TestNG? Или мы должны исправить текущего репортера junit? - person juherr; 29.07.2017
comment
@juherr - меня устраивает любой из них. Пожалуйста, дайте мне знать, что следует сделать. Соответственно подниму PR. - person Krishnan Mahadevan; 29.07.2017
comment
Вы можете начать с предложения своего нового слушателя. Посмотрим, что скажет Седрик. - person juherr; 29.07.2017