Bird
Raised Fist0
JUnittesting~5 mins

JaCoCo setup and configuration in JUnit - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is JaCoCo used for in software testing?
JaCoCo is a tool that measures how much of your code is tested by your unit tests. It helps you see which parts of your code are covered and which are not.
Click to reveal answer
beginner
How do you add JaCoCo to a Maven project?
You add the JaCoCo plugin in your pom.xml under build > plugins. This plugin runs during the test phase and generates coverage reports.
Click to reveal answer
intermediate
What is the purpose of the jacoco-maven-plugin in the build process?
The jacoco-maven-plugin instruments the code during tests to collect coverage data and then generates reports showing which code was executed.
Click to reveal answer
beginner
Which JaCoCo report formats are commonly used?
JaCoCo can generate reports in HTML (for easy viewing in browsers), XML (for integration with other tools), and CSV formats.
Click to reveal answer
intermediate
How can you configure JaCoCo to fail the build if coverage is below a threshold?
In the JaCoCo plugin configuration, you can set rules with check goals specifying minimum coverage percentages. If coverage is below these, the build fails.
Click to reveal answer
What phase of the Maven build lifecycle does JaCoCo typically run in?
Acompile
Bpackage
Ctest
Dinstall
Which of these is NOT a report format generated by JaCoCo?
AHTML
BXML
CCSV
DPDF
How do you add JaCoCo to a Gradle project?
AApply the 'jacoco' plugin in build.gradle
BAdd JaCoCo dependency in dependencies block
CInclude JaCoCo jar in src folder
DRun JaCoCo as a separate command line tool
What does JaCoCo instrument in your project?
ATest classes only
BSource code classes
CBuild scripts
DDocumentation files
Which Maven plugin goal generates the JaCoCo coverage report?
Ajacoco:report
Bjacoco:clean
Cjacoco:check
Djacoco:prepare-agent
Explain how to set up JaCoCo in a Maven project to generate coverage reports.
Think about where in the build file and lifecycle JaCoCo fits.
You got /4 concepts.
    Describe how JaCoCo helps improve code quality in testing.
    Consider how coverage data influences testing decisions.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the primary purpose of JaCoCo in a JUnit testing environment?
      easy
      A. To replace JUnit as a testing framework
      B. To run JUnit tests faster
      C. To generate test data automatically
      D. To measure how much of your code is tested by your unit tests

      Solution

      1. Step 1: Understand JaCoCo's role

        JaCoCo is a code coverage tool that tracks which parts of your code are executed during tests.
      2. Step 2: Compare options

        Only To measure how much of your code is tested by your unit tests correctly describes JaCoCo's purpose; others describe unrelated functions.
      3. Final Answer:

        To measure how much of your code is tested by your unit tests -> Option D
      4. Quick Check:

        JaCoCo = Code coverage tool [OK]
      Hint: JaCoCo measures tested code coverage, not test speed [OK]
      Common Mistakes:
      • Confusing JaCoCo with test runners
      • Thinking JaCoCo generates tests
      • Assuming JaCoCo replaces JUnit
      2. Which of the following is the correct way to add JaCoCo plugin in a Maven pom.xml file?
      easy
      A. org.jacoco jacoco-maven-plugin 0.8.8
      B. org.junit.jupiter junit-jupiter-engine 5.9.2
      C. org.jacoco jacoco-core 0.8.8
      D. org.apache.maven.plugins maven-compiler-plugin 3.8.1

      Solution

      1. Step 1: Identify JaCoCo plugin syntax

        JaCoCo is added as a Maven plugin with groupId 'org.jacoco' and artifactId 'jacoco-maven-plugin'.
      2. Step 2: Eliminate incorrect options

        Options B and D are unrelated plugins; A is a dependency, not a plugin.
      3. Final Answer:

        Correct JaCoCo plugin configuration in Maven -> Option A
      4. Quick Check:

        JaCoCo plugin = org.jacoco:jacoco-maven-plugin [OK]
      Hint: JaCoCo is a plugin, not a dependency in Maven [OK]
      Common Mistakes:
      • Adding JaCoCo as a dependency instead of plugin
      • Confusing JUnit plugin with JaCoCo plugin
      • Using unrelated Maven plugins
      3. Given the following JaCoCo configuration snippet in a Maven pom.xml:
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.8</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>
      What will happen when you run mvn test?
      medium
      A. JaCoCo agent prepares coverage data before tests, then generates a coverage report after tests
      B. Tests will run without coverage data collection
      C. The build will fail due to missing report goal
      D. JaCoCo will only generate a report without running tests

      Solution

      1. Step 1: Understand prepare-agent goal

        The 'prepare-agent' goal sets up JaCoCo to collect coverage data during test execution.
      2. Step 2: Understand report goal in test phase

        The 'report' goal runs after tests to generate the coverage report.
      3. Final Answer:

        JaCoCo collects coverage during tests and generates report after -> Option A
      4. Quick Check:

        prepare-agent + report = coverage data + report [OK]
      Hint: prepare-agent collects data; report generates coverage output [OK]
      Common Mistakes:
      • Assuming coverage is collected without prepare-agent
      • Thinking report runs before tests
      • Confusing goals causing build failure
      4. You added JaCoCo plugin to your Maven project but no coverage report is generated after running mvn test. What is the most likely cause?
      medium
      A. JUnit tests are not written correctly
      B. You used an incorrect JaCoCo version number
      C. You forgot to bind the report goal to the test phase
      D. Maven compiler plugin is missing

      Solution

      1. Step 1: Check JaCoCo execution bindings

        Without binding the 'report' goal to the 'test' phase, JaCoCo won't generate reports automatically.
      2. Step 2: Eliminate other causes

        Incorrect version usually causes build errors; test correctness or compiler plugin absence won't stop report generation if configured.
      3. Final Answer:

        Missing binding of report goal to test phase -> Option C
      4. Quick Check:

        Report goal must be bound to test phase [OK]
      Hint: Bind report goal to test phase to generate coverage report [OK]
      Common Mistakes:
      • Ignoring execution phase bindings
      • Blaming test code for missing reports
      • Assuming version mismatch causes silent failure
      5. You want to configure JaCoCo in a Gradle project to generate an XML coverage report after tests run. Which snippet correctly configures this in build.gradle?
      hard
      A. jacocoTestReport { reports { xml.required = true html.required = false } }
      B. jacocoTestReport { reports { xml.enabled = true html.enabled = true } }
      C. test { useJUnitPlatform() jacoco { xml.enabled = true } }
      D. jacoco { toolVersion = '0.8.8' reports { xml.enabled = true } }

      Solution

      1. Step 1: Identify correct JaCoCo Gradle report syntax

        The 'jacocoTestReport' task configures reports with 'xml.enabled' and 'html.enabled' properties.
      2. Step 2: Compare options for XML report generation

        jacocoTestReport { reports { xml.enabled = true html.enabled = true } } correctly enables XML report; the snippet using 'required' properties is outdated; others configure in wrong blocks.
      3. Final Answer:

        jacocoTestReport with reports { xml.enabled = true } -> Option B
      4. Quick Check:

        Use xml.enabled = true in jacocoTestReport [OK]
      Hint: Use xml.enabled = true inside jacocoTestReport for XML reports [OK]
      Common Mistakes:
      • Using xml.required instead of xml.enabled
      • Configuring jacoco block instead of jacocoTestReport
      • Missing enabling of reports
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard