Coverage Engines¶
Delta Coverage supports two coverage engines. The plugin doesn't collect coverage itself — it uses data from these engines.
JaCoCo (Default)¶
The standard coverage engine for JVM projects. Works well with Java and most Kotlin code.
- Produces
.execbinary files - Widely supported and documented
- Default choice for most projects
IntelliJ Coverage¶
Better accuracy for Kotlin projects, especially with inline functions and coroutines.
- Produces
.icbinary files - Uses CoverJet plugin under the hood
- Recommended for Kotlin-heavy projects
When to use IntelliJ engine
If you see incorrect coverage for Kotlin inline functions, suspend functions, or coroutines, switch to IntelliJ engine.
Auto-Apply Behavior¶
By default, the Gradle plugin auto-applies the coverage engine plugin:
This means:
- JaCoCo engine: Applies
jacocoplugin to all projects - IntelliJ engine: Applies
cover-jetplugin to all projects
To disable auto-apply (if you configure coverage manually):
CLI
Auto-apply is a Gradle plugin feature. The CLI requires you to provide pre-generated coverage binary files via --coverage-binary.
Comparison¶
| Feature | JaCoCo | IntelliJ |
|---|---|---|
| Java accuracy | Excellent | Excellent |
| Kotlin accuracy | Good | Excellent |
| Inline functions | Partial | Full |
| Coroutines | Partial | Full |
| Binary format | .exec |
.ic |
| Ecosystem support | Wide | Growing |
Mixing Engines¶
You cannot mix engines in a single build. Choose one engine for your entire project.
Troubleshooting¶
No coverage data found¶
- Verify tests ran before
deltaCoverage - Check binary files exist (
build/jacoco/*.execorbuild/coverage/*.ic) - Run with
-PexplainOnlyto see detected files
Wrong coverage for Kotlin¶
Switch to IntelliJ engine: