基于 Git 分支对比的 JaCoCo 增量测试覆盖率报告生成器 IntelliJ IDEA 插件。
一键完成:Maven 测试 → 增量差异计算 → HTML 报告生成,仅统计两个分支之间的变更代码覆盖率。
- 增量覆盖:只针对 Base 分支与 Now 分支之间的差异代码计算覆盖率
- 一键执行:自动串联 Maven 全量测试、Git 差异分析、HTML 报告生成三个步骤
- 可跳过测试:已手动跑过全量测试时可取消勾选「运行 Maven 测试 (Step 1)」直接生成报告(默认勾选,并记忆上次选择)
- HTML 报告:生成后自动在浏览器中打开
target/report/index.html
- 构建插件:
./gradlew buildPlugin - IDEA 中执行:
Settings → Plugins → ⚙ → Install Plugin from Disk...,选择build/distributions/auto-jacoco-1.0.0.zip - 重启 IDEA
安装并启用插件后,入口位于主菜单:
Tools → 生成增量覆盖率报告
点击后弹出配置对话框,需填写/确认:
| 字段 | 说明 |
|---|---|
| Git URL | 仓库地址(HTTP 或 SSH) |
| Base Branch (基准分支) | 增量对比的基准分支,如 master |
| Now Branch (当前分支) | 当前开发分支 |
| SSH 私钥 | SSH 认证私钥文件路径 |
| 本地 Git 目录 | clone 仓库用的临时目录 |
| 运行 Maven 测试 (Step 1) | 勾选执行全量测试;取消勾选跳过(记忆上次选择) |
| 测试模块路径 (-pl) | Maven 测试目标模块,如 app/test |
| 生成后在浏览器中打开报告 | 完成后自动打开报告 |
覆盖率报告依赖 Maven 测试阶段产生的 jacoco.exec 数据文件。请在目标模块的 pom.xml 的 <build><plugins> 中添加:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
</plugin>并在 <properties> 中定义版本号:
<properties>
<jacoco.version>0.8.8</jacoco.version>
</properties>注意:仅声明插件不会在测试阶段自动生成
jacoco.exec,还需在 execution 中绑定prepare-agentgoal:<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.version}</version> <executions> <execution> <goals> <goal>prepare-agent</goal> </goals> </execution> </executions> </plugin>
- Maven 项目,且已在 IDEA 中导入(
View → Tool Windows → Maven) - 项目已编译(各模块存在
target/classes) - 已运行过测试并产生
jacoco.exec(勾选「运行 Maven 测试 (Step 1)」时会自动执行clean verify生成) - 项目代码位于 Git 仓库中,且当前 IDEA 项目能访问远程仓库(用于拉取分支对比)
- 打开项目,点击
Tools → 生成增量覆盖率报告 - 填写 Git 地址,选择 Base / Now 分支
- 确认 SSH 私钥与测试模块路径
- (可选)已跑过全量测试时,取消勾选「运行 Maven 测试 (Step 1)」以跳过测试
- 点击「生成报告」
- 等待后台任务执行完成,浏览器自动打开
target/report/index.html
| Step | 说明 |
|---|---|
| Step 1 | Maven 全量测试(clean verify,可跳过),产生 jacoco.exec |
| Step 2 | Git 分支差异分析,生成增量差异 target/test.json |
| Step 3 | 调用 JaCoCo CLI 生成增量覆盖率 HTML 报告 target/report/index.html |
Settings → Tools → Auto JaCoCo Coverage 中可配置:
- SSH 私钥路径
- Java 运行时路径
- Git 本地仓库基础目录
- 代码根路径(默认
src/main/java/) - Maven 测试模块路径
- Maven 安装目录(留空使用 PATH 中的 mvn)
- Git 用户名/密码(HTTP 仓库认证)
- 报告生成后自动打开浏览器
- 提示「未找到任何 jacoco.exec 文件」:未配置或未执行 JaCoCo 插件,请检查前置条件 1,并确认勾选了「运行 Maven 测试 (Step 1)」。
- 提示「未找到任何 target/classes 目录」:项目尚未编译,请先执行
Build → Build Project。 - 跳过测试后报告异常:跳过 Step 1 仅适用于已手动跑过全量测试且
jacoco.exec已存在的场景。