Покрытие кода с использованием JaCoCo
Я пытаюсь получить покрытие кода с помощью JaCoCo-javaagent, передавая аргумент VM
-javaagent:/test/jacoco/jacocoagent.jar=destfile=/test/jacoco/jacoco.exec,includes=com *, дополните = истина.
Я могу получить какое-то значение в файле jacoco.exec, но не могу получить отчет о покрытии. Как я могу преобразовать jacoco.exec в отчет о покрытии ИЛИ я что-то упускаю в аргументе VM.
Условие таково, что у меня есть только jar и war и я использую сервер jBoss для запуска приложения.
2 ответа
Запустите SonarQube, который включает в себя отличные отчеты JaCoCo. Нет необходимости анализировать двоичный вывод из JaCoCo самостоятельно.
Ссылки на инструкции по его запуску с помощью различных инструментов, включая командную строку, находятся здесь.
Вам нужно будет запустить сервер гидролокатора. Вы можете скачать его здесь. На Mac вы можете сделать
brew install sonar
sonar console
Команды для Maven, например, являются
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true
mvn sonar:sonar
Вы можете создать отчет JaCoCo, используя org.jacoco:jacoco-maven-plugin:report
мавен гол Например:
pom.xml
...
<profiles>
<profile>
<id>jacoco-report</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
После mvn -Pjacoco-report clean install
плагин jacoco maven создает отчет в target/site/jacoco
каталог.