Generating JaCoCo reports
Generating JaCoCo reports, for use with Diffblue Cover Reports
JaCoCo reports are an essential component of Cover Reports, which provides insights about your code to help your team identify gaps in your application’s coverage.
To generate a JaCoCo report in a Maven project:
1. Add the following declarations to the
pom.xml
file:<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
</dependency>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
2. Run:
mvn test
This creates a coverage report in binary format called
jacoco.exec
in the target
directory of your Maven project. The report is also in XML, HTML and CSV formats in the target/site/jacoco
directory.Please note that if you are generating a file to use with Cover Reports, you need to use the report in XML format. You can also visualize the
jacoco.exec
report in Intellij IDEA.To generate a JaCoCo report in a Gradle project:
1. Add the JaCoCo plugin to your build script (
build.gradle
or build.gradle.kts
):GROOVY
KOTLIN
apply plugin: 'jacoco'
plugins {
jacoco
}
2. Include the following configuration to enable the generation of the XML reports:
GROOVY
KOTLIN
jacocoTestReport {
dependsOn test
reports {
xml.enabled true
csv.enabled true
}
}
tasks {
jacocoTestReport {
dependsOn(test)
reports {
xml.required.set(true)
csv.required.set(true)
}
}
}
3. To ensure that you run JaCoCo, we recommend adding
finalizedBy jacocoTestReport
to your test configuration, for example:test {
finalizedBy jacocoTestReport
}
You can also filter out the tests shown in the JaCoCo report. The following examples assume the default Cover test class suffix (
DiffblueTest
) is in use.Maven
- Add the Surefire plugin (minimum version 2.22.0) to your
pom.xml
file - Use the command:
mvn clean test -Dtest=!*DiffblueTest
Please note that in certain environments, you may need to use the following alternative (which has additional single quotation marks):
mvn clean test -Dtest='!*DiffblueTest'
Gradle
1. Add a property to your build script:
GROOVY
KOTLIN
test {
if (project.hasProperty('excludeTests')) {
exclude project.property('excludeTests')
}
}
tasks {
test {
if (project.hasProperty("excludeTests")) {
exclude(project.property("excludeTests") as String?)
}
}
}
2. Use the command:
./gradlew test -PexcludeTests=**/*DiffblueTest*
Maven
- Use the command:
mvn clean test -Dtest=*DiffblueTest
Gradle
- Use the command:
./gradlew test --tests *DiffblueTest
Last modified 23d ago