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:
Related topics:
- Testing: Acceptance Testing—Criteria for being 'done' with an issue
- Testing: Agile Testing (Crispin and Gregory)—Material from the book by Lisa Crispin and Janet Gregory, Agile Testing: A Practical Guide for Testers and Agile Teams
- Testing: Automation—How to make testing an automatic part of your process
- Testing: End to End Testing—Intro to End to End Testing, and Framework Specific Examples
- Testing: Jacoco Reports—How to interpret the reports (red, yellow, green)
- Testing: Jacoco via Maven—Setting up Jacoco test coverage, using Maven
- Testing: Unit Testing with Jest—Setting up Jest for Next.JS projects
- Testing: Mocking—Intro to Mocking in Tests, and Framework-specific Examples