For Java, you can use JaCoCo and its Maven plugin. Simply add this to your POM:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.4</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>ut-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>it-report</id>
<phase>post-integration-test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
which will bind the execution to the unit test (prepare-package) AND integration test phase (post-integration-test), generating the report at the end of both phases in folder target/site/jacoco. If you skip one of those phases, the report will be incomplete and you might see much lower coverage than expected.
In case you want to exclude a package or a class from the check, you can add this section to the plugin configuration:
<configuration>
<excludes>
<exclude>PATH/TO/PACKAGE/**</exclude>
<exclude>PATH/TO/PACKAGE/CLASS.class</exclude>
</excludes>
</configuration>
You can also fail the build if the coverage is below a certain threshold you define, but I suggest activating this only when you are confident your setup is stable and doesn't annoy too many people.
No comments:
Post a Comment
With great power comes great responsibility