Для этого с помощью JaCoCo требуется два шага:
1) Добавьте jacocoagent
к вашему Apache Tomcat, который собирает данные покрытия и прослушивает порт TCP для запросов на сброс этих данных.
В apache-tomcat/bin/setenv.bat
добавить Javaопции:
set JAVA_OPTS=-javaagent:c:\\path\\to\\jacoco\\lib\\jacocoagent.jar=includes=your.classes.packages.*,classdumpdir=jacocoClasses,output=tcpserver
2) Если вы выполняете свои тесты с помощью Maven, вы можете использовать jacoco-maven-plugin для подключения к порту TCP, открытому с помощью jacocoagent
сбора данных покрытия от вашего Apache Tomcat.
Неполный пример:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<includes>
<include>your/classes/packages/**</include>
</includes>
</configuration>
</execution>
<execution>
<id>default-dump-report</id>
<phase>test</phase>
<goals>
<goal>dump</goal>
</goals>
<configuration>
<address>localhost</address>
<reset>true</reset>
<destFile>${project.build.directory}/jacoco.exec</destFile>
</configuration>
</execution>
<execution>
<id>default-report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<includes>
<include>your/classes/packages/**</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
Остерегайтесь , что данные покрытия JaCoCo применимы только к тем .class
файлам, с которыми они были собраны (помечены контрольной суммой). Две компиляции одного .java
файла могут привести к .class
файлам с разными контрольными суммами. Отчеты JaCoCo, таким образом, объявят его непокрытым.