Testing: Jacoco via Maven
Setting up Jacoco test coverage, using Maven
First: read about using Maven at these pages:
- Maven intro: https://ucsb-cs56-pconrad.github.io/topics/maven/
- Apache 5 minute guide to Maven: https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
- Converting an Ant Project to Maven: https://ucsb-cs56-pconrad.github.io/topics/maven_convert_ant_to_maven/
Then, here’s what you need to do to get Jacoco Test Coverage working for your project.
You need to have your Maven Project set up for JUnit
As a reminder, in a Maven project:
- Regular application code goes under
/src/main/java - JUnit test code goes under
/src/test/java
To use JUnit in a Maven project, you need the JUnit dependency in your pom.xml file:
<project>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Next, add in a plug-in for Jacoco:
There are many examples online of various ways to get Jacoco support in your pom.xml.
Here are a few:
Troubleshooting Jacoco
- Make sure you have the latest version of the jacoco
- Make sure you do
mvn testthenmvn jacoco:reportthenmvn site:deploy - Make sure that you
git add docs, commit and push so that the latest version is online. - If you reset
<argLine>, make sure that you add${argLine}inside your new setting.- WRONG:
<argLine>-Xmx1024M </argLine>(If it were Java, this would be:argLine="-Xmx1024M") - CORRECT:
<argLine>-Xmx1024M ${argLine}</argLine>(In Java, this would be:argLine = "-Xmx1024M " + argLine)
- WRONG: