Я добавил надлежащий java-агент (surefireArgLine) на удаленный сервер TomEE через catalina, включающий плагин surefire. это работает.
surefireArgLine - будет заполнен подготовительным агентом Surefire во время выполнения.
blockquote><tomee.catalina_opts> ${surefireArgLine}</tomee.catalina_opts>
Отказ от ответственности: я не эксперт ни по Arquillian, ни по TomEE, поэтому вы можете подстроить ответ под свои цели.
В любом случае, в двух словах, байт-код инструментов JaCoCo для предоставления отчета о покрытии.
Поскольку при использовании Arquillian фактическое выполнение теста происходит в JVM TomEE, а не в JVM, которая фактически выполняет набор тестов (возможно, CI-сервер или просто скрипт сборки, выполняющий тест), поэтому настройте JaCoCo на этом тестовая машина не сделает много, вам придется настроить сам сервер.
JaCoCo имеет опцию -javaagent
для этого, и этот Java-агент будет «перехватывать» загрузку классов сервером и обрабатывать их.
Теперь, когда JaCoCo работает, он создает файл jacoco.exec
, который на самом деле содержит отчет о покрытии, который может быть показан позже различными способами (плагин jenkins для отображения покрытия, интеграция с гидролокатором, что угодно). И это, безусловно, наиболее часто используемая опция AFAIK, поэтому, если вы будете использовать этот подход, учитывая, что инструментарий действительно работает, после завершения тестов вам нужно будет найти сервер на тестовом компьютере и загрузить его на компьютер сборки. и интегрироваться с CI / Sonar как угодно.
Однако есть альтернативные решения:
Документация JaCoCo утверждает, что существует три режима запуска инструментирующего Java-агента:
Технически вы можете просто указать разные параметры для этого javaagent, чтобы он запускал JaCoCo в одном из этих режимов.
В любом случае, мы обсудили первый вариант, но вы также можете работать с конфигурациями TCP, если это необходимо. Конечно, здесь вам придется решать проблемы безопасности (например, разрешение на доступ / доступ к порту и т. Д.).
Если вы работаете в режиме TCP, есть Плагин Maven , который может пригодиться. Я не использовал его сам, просто погуглил, поэтому не могу комментировать, хорошо ли это, у него всего 2 звезды на Github, так что, вероятно, он не готов к производству, но, возможно, вы могли бы получить некоторые идеи из его исходного кода. [1116 ]
Вы можете установить catalina_opts в arquillian.xml для контейнера tomee. Отфильтруйте его с помощью Maven, чтобы передать jacoco javaagent, и все готово:).