Объединение верных отчетов 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. Однако я не могу найти автоматизированный способ. Что я пробовал до сих пор

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

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

0 ответов

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

junit-merge  -o results.xml -d target/surefire-reports/
Другие вопросы по тегам