Generate coverage
mvn clean verify
The JaCoCo agent records both unit and integration test execution. Its report goal runs in Maven's verify phase, after the complete test suite.
Coverage is part of the real validation command. There is no separate skipped-test documentation build that can produce a misleading report.
Local output
| Report | Path | Use |
|---|---|---|
| HTML | target/site/jacoco/index.html | Browse package, class, method, branch, and line coverage locally. |
| XML | target/site/jacoco/jacoco.xml | Machine-readable output validated by CI and available to future reporting integrations. |
Open the HTML file directly in a browser after verification. All files under target/ are generated and must not be committed.
Published report
On a successful push to master, GitHub Actions copies the HTML report into the Pages artifact under /coverage/.
Open published coverage report
The dashboard and README link to this canonical report. No percentage badge is shown because the repository does not publish an automatically maintained badge metric.
Excluded generated code
The report excludes code that is produced mechanically and is not owned as handwritten application behavior:
- OpenAPI-generated interfaces and models under
com/dmasone/identity/api/generated/**. - Generated MapStruct implementation classes matching
*MapperImpl*.
The mapper interface and handwritten controllers, services, domain model, repositories, and exception handling remain visible where applicable.
Interpret the report
- Instruction and line coverage reveal unexecuted implementation paths.
- Branch coverage is particularly useful for validation, update, and error decisions.
- Class and method coverage can identify production components absent from the suite.
Coverage is diagnostic evidence, not a substitute for assertions or realistic integration tests. The project does not enforce an arbitrary percentage threshold; changes should add tests where behavior and risk justify them.