Объединение надежных отчетов JUnit

У меня есть проект Java, который состоит из множества модулей maven и значительного количества модульных / интеграционных тестов. Проект настроен на создание отчетов об испытаниях через плагин surefire. Теперь этот плагин в основном создает XML-отчет для каждого тестового класса, его запуск запланирован один раз в день и выполняется на Jenkins.

Я хочу отправить эти XML-отчеты в систему управления тестированием (XRAY), чтобы сделать их более заметными и управляемыми. Мой (наивный) подход заключался бы в том, чтобы просто добавить сценарий пост-сборки на Jenkins и отправить эти отчеты через curl в REST-API управления тестами. Этот API позволяет отправлять по одному файлу отчета за раз. Этот файл отчета может быть как одиночным, так и вложенным, то есть я могу отправить оба следующих файла, и он работает:

Единый отчет

  <testsuite>
  ...
  </testsuite>

Сводный отчет

  <testsuites>
    <testsuite ... />
    <testsuite ... />
  </testsuites>

REST-API может обрабатывать оба, то есть схема IBM JUnit и стандартная надежная схема

Теперь к проблеме; Очевидно, я хочу объединить эти отчеты в один, чтобы избежать необходимости делать миллиард запросов к REST-API. Однако я не могу найти автоматический способ. То, что я пробовал до сих пор,

  • поэкспериментируйте с надежным плагином, чтобы объединить отчеты XML, но подходящего варианта не существует
  • Организуйте тесты в набор тестов (JUnit), но на выходе останется XML-отчет для каждого теста.
  • найти альтернативные плагины / инструменты, которые решают эту проблему, не повезло

Единственный другой способ, который я могу придумать, - это написать сам «сценарий слияния», возможно, используя какое-то XSLT-преобразование. Но я бы предпочел этого не делать. Любая помощь очень ценится, спасибо!


person droeder    schedule 21.11.2018    source источник


Ответы (1)


Решением было бы использовать для этого внешнюю утилиту, поскольку уверенность, похоже, ее не поддерживает. Я успешно использовал утилиту junit-merge, которая является пакетом NPM, как вы можно увидеть, например, в это учебник. Использование довольно простое; вам просто нужно указать выходной файл и входную папку, содержащую несколько отчетов на основе JUnit XML.

junit-merge  -o results.xml -d target/surefire-reports/
person Sérgio    schedule 11.08.2020