Объединение верных отчетов 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/