Как сгенерировать выходные результаты TestNg перед запуском аннотации @AfterSuite - PullRequest
0 голосов
/ 20 декабря 2018

В моей аннотации @AfterSuite я пытаюсь сгенерировать отчет Jasper, который принимает testng-results.xml в качестве входных данных.Но проблема здесь в том, что testng-results.xml генерируется только после выполнения аннотации @AfterSuite.Я хотел бы знать, возможно ли сгенерировать результаты теста перед запуском @AfterSuite аннотации.Любая помощь / предложение приветствуется.

Я знаю, что есть некоторые ответы на этот вопрос здесь .Но я не нашел точного способа сделать это.

1 Ответ

0 голосов
/ 20 декабря 2018

Файл testng-results.xml создается встроенным репортером TestNG org.testng.reporters.XMLReporter.Этот репортер запускается только на этапе создания отчетов (т. Е. Только после того, как все наборы завершены).

Таким образом, невозможно создать этот файл до завершения аннотированного метода @AfterSuite..

Вместо этого вы можете построить свою логику построения отчетов на основе яшмы через слушатель org.testng.IExecutionListener в его методе onExecutionFinish().

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

Другой вариант заключается в следующем:

  1. Создать новыйрепортер, который расширяет org.testng.reporters.XMLReporter
  2. Настройте TestNG, чтобы не запускать отчеты по умолчанию.Например, если вы использовали Maven в качестве инструмента сборки и использовали surefire-plugin, то вы можете сконфигурировать surefire-plugin, чтобы отключить отчеты по умолчанию, добавив следующие
<properties>
    <property>
        <name>usedefaultlisteners</name>
        <value>false</value>
    </property>
</properties>
Подключите прослушиватель, который вы создали в (1), с помощью:
  1. @Listeners аннотации (или)
  2. <listeners> тега (или)
  3. Использование сервисных загрузчиков[См. здесь ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...