What is Jacoco and How it works? An Overview and Its Use Cases

What is Jacoco?

JaCoCo is an open-source toolkit for measuring code coverage in a code base and reporting it via visual reports. It is quite popular among a variety of code coverage frameworks. It measures line and branch coverage based on the code covered by the running unit test cases and provides a visual report, including the highlighted lines of code and the total percentage of code executed in each method. From this analysis, the developer can assess code that has not been adequately tested. It’s best to focus on areas where coverage is particularly low and try to analyze why this code hasn’t been thoroughly tested.

How does Jacoco work aka Jacoco architecture?

Jacoco runs as a Java Agent. It is responsible for instrumenting the byte code while running the test. JaCoCo exercises in each instruction, and shows which lines are used during each test. It is also possible to run the JaCoCo agent in server mode.

Use case of Jacoco?

Jacoco is an open-source project that can be used to test production code for test code coverage. It generates reports and integrates well with IDEs like Eclipse IDE. Integration is also available for other IDEs and Continuous Integration environments. So there are also Gradle, SonarQube, and Jenkins plugins that test these code coverage outside the IDE and are therefore available to the development team globally.

Feature and Advantages of using Jacoco?

Advantages of Jacoco

JaCoCo saves the developer’s time by pinpointing the exact location where the code coverage is low, providing a more specific area to focus on. The JaCoCo tests do not take long at all to generate as they are created while your unit tests are running.

Best Alternative of Jacoco?

  • JUnit
  • ESLint
  • Prettier
  • SonarQube
  • TSLint
  • Code Climate
  • RuboCop
  • Codacy

Best Resources, Tutorials, and Guide for Jacoco


Free Video Tutorials of Jacoco

Interview Questions and Answers for Jacoco

1) Why is JaCoCo used?
Jacoco is an open-source project, which can be used to check production code for test code coverage. It creates reports and integrates well with IDEs like the Eclipse IDE.

2) How do I check my JaCoCo code?
2.4 Open the target/site/jacoco/index. HTML file, review the code coverage report: Green – Code is tested or covered. Red – Code is not tested or covered.

3) Is JaCoCo only for Java?
JaCoCo supports Java class files from version 1.0 to 16. However, the minimum JRE version required by the JaCoCo runtime (e.g. the agent) and the JaCoCo tools is 1.5.

4) What is the difference between JaCoCo and SonarQube?
JaCoCo: A code coverage library for Java. It is a free code coverage library for Java, which has been created based on the lessons learned from using and integrating existing libraries for many years; SonarQube: Continuous Code Quality.

5) What is the JaCoCo plugin used for?
The JaCoCo-Maven plugin is used to generate code coverage reports. Source code with high code coverage has more of its code executed during testing.

6) What are missed branches in JaCoCo?
Missed complexity again is an indication of the number of test cases missing to fully cover a module. Note that JaCoCo does not consider exception handling as branches try/catch blocks will also not increase complexity.

7) How JaCoCo work internally?
Instrumentation requires mechanisms to modify and generate Java byte code. JaCoCo uses the ASM library for this purpose internally. Implementing the Java byte code specification would be an extensive and error-prone task. Therefore an existing library should be used.

8) What does yellow mean in JaCoCo?
party covered lines
Green – fully covered lines. Yellow – party-covered lines (some instructions or branches missed) Red – lines that have not been executed at all.

9) How do I increase my JaCoCo coverage?
For the code coverage to increase, one would need to run the tests with the coverage enabled and then view the report generated locally to see the areas covered by jacoco during its coverage parse, then from these one would see the methods (per class) that need to be covered from the view of the jacoco agent.

10) What is JaCoCo instrumentation?
JaCoCo uses class file instrumentation to record execution coverage data. Class files are instrumented on-the-fly using a so-called Java agent. This mechanism allows in-memory pre-processing of all class files during class loading independent of the application framework.

11) How do I run a JaCoCo report?
On running maven: test it will generate jacoco.exec file.
On running jacoco: report it generates a report in an HTML file under the target/site/jacoco directory. You can view the report by opening index.html.

12) How do I run a JaCoCo test report?
How to set up JaCoCo with Maven?
Generate the project. Navigate to https://start.spring.io/ to generate a project with an appropriate version of the build tool (maven), language (Java), and the default version of spring. …
Import project into IDE (i.e., Eclipse) …
Add the JaCoCo plugin to the pom. …
Generate code coverage report.

13) How do I check my JaCoCo insurance report?
In IntelliJ Idea from the menu select Analyze > Show Coverage data. In the new window press the + button and select yours. exec file. The test coverage results will appear in the editor Coverage tab.

14) What is a good code coverage percentage?
With that being said it is generally accepted that 80% coverage is a good goal to aim for. Trying to reach a higher coverage might turn out to be costly, while not necessarily producing enough benefit. The first time you run your coverage tool you might find that you have a fairly low percentage of coverage.

15) How is code coverage calculated?
How is it measured? To calculate the code coverage percentage, simply use the following formula: Code Coverage Percentage = (Number of lines of code executed by a testing algorithm/Total number of lines of code in a system component) * 100.

16) Where is the JaCoCo report generated Gradle?
By default, a HTML report is generated at $buildDir/reports/jacoco/test .

17) Does JaCoCo support Kotlin?
JaCoCo is a free code coverage library that is used in most projects for measuring the test coverage for Java/Kotlin/Android.

18) How do I run JaCoCo in eclipse?
Open Marketplace from the Help menu.
Search for Eclemma Java Code Coverage.
Install and Restart Eclipse.
Right-Click on the project, select Coverage as -> JUnit Test.

19) How does JaCoCo integrate with IntelliJ?
From the main menu, select Run | Edit Configurations and click the necessary configuration on the left panel. …
Open the Code Coverage tab and select a code coverage runner from the Choose coverage runner list: IntelliJ IDEA, EMMA, or JaCoCo.

20) How do you increase code coverage?

  • Improving Test Coverage
  • Write More Tests.
  • Generate Tests Automatically.
  • Remove Dead/Zombie Code.
  • Remove Redundant/Cloned Code.
  • Write/Execute More Sophisticated Tests.
Rajesh Kumar
Follow me
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x