Если я вас правильно понимаю, у вас на самом деле есть 2 разных процесса в вашем сценарии:
"Клиентский" процесс, который запускает интеграционные тесты и для которого легко может быть применен jacoco,но это не то, что вам нужно
Процесс "сервер", который запускает реальный сервер JBoss и выполняет фактический код.
Контакты процесса клиентасервер через HTTP.
В этом случае, я боюсь, jacoco не сможет предоставить вам покрытие , если вы запускаете тесты из maven / gradle , потому что инструменты jacoco включают только байт-кодбегущая JVM.Так что вы должны быть «креативными» здесь:)
Я перечислю здесь некоторые возможные подходы Отказ от ответственности: Я не пробовал их (хотя не работал с jboss / java ee), но, возможно, вам удастся хотя бы позаимствовать некоторые идеи
Первый подход - это запуск тестов вместе с приложением, как это делается, например, в весенних тестах (Я не уверен, предоставляет ли JBoss аналогичные возможности).
Идея проста:
- Вы запускаете интеграционный тест, он запускает jboss, "встроенный в тот же jvm", ивы можете ввести в тест сессионные EJB-компоненты / EJB-компоненты (например, автоматическую разводку с пружиной).
Преимущество такого метода в том, что вы сможете просто использовать плагин jacoco maven, и он будет все для вас использовать
Я не знаю, насколько легко это будетТехнически достигнув этой архитектуры, я знаю, что последние версии jboss поддерживают встроенный режим, поэтому, возможно, вы найдете эту ссылку полезной основой
Другое направление заключается ввзгляните на проект Arquillian .У них есть какое-то расширение jacoco, которое, вероятно, поможет, но я никогда не пробовал его.
И последний подход , который я могу придумать, - это запустить сервер jboss с агентом jacoco напрямую, а не полагаться на него.в системе сборки, которая запускает для вас jacoco.
Идея состоит в том, чтобы передать результаты покрытого серверного кода в некоторую конечную точку файла / tcp.Таким образом, вы запускаете jboss с -javaagent:[yourpath/]jacocoagent.jar
, и он начинает потоковую передачу результатов туда, где вам это нужно для потоковой передачи.После тестов вы должны собрать эти результаты и подготовить отчет.Вы можете найти Здесь Более подробную информацию об этом подходе