Skip to content

Repository files navigation

Auto JaCoCo Coverage

基于 Git 分支对比的 JaCoCo 增量测试覆盖率报告生成器 IntelliJ IDEA 插件。

一键完成:Maven 测试 → 增量差异计算 → HTML 报告生成,仅统计两个分支之间的变更代码覆盖率。

功能特性

  • 增量覆盖:只针对 Base 分支与 Now 分支之间的差异代码计算覆盖率
  • 一键执行:自动串联 Maven 全量测试、Git 差异分析、HTML 报告生成三个步骤
  • 可跳过测试:已手动跑过全量测试时可取消勾选「运行 Maven 测试 (Step 1)」直接生成报告(默认勾选,并记忆上次选择)
  • HTML 报告:生成后自动在浏览器中打开 target/report/index.html

安装

  1. 构建插件:./gradlew buildPlugin
  2. IDEA 中执行:Settings → Plugins → ⚙ → Install Plugin from Disk...,选择 build/distributions/auto-jacoco-1.0.0.zip
  3. 重启 IDEA

工具按钮位置

安装并启用插件后,入口位于主菜单:

Tools → 生成增量覆盖率报告

点击后弹出配置对话框,需填写/确认:

字段 说明
Git URL 仓库地址(HTTP 或 SSH)
Base Branch (基准分支) 增量对比的基准分支,如 master
Now Branch (当前分支) 当前开发分支
SSH 私钥 SSH 认证私钥文件路径
本地 Git 目录 clone 仓库用的临时目录
运行 Maven 测试 (Step 1) 勾选执行全量测试;取消勾选跳过(记忆上次选择)
测试模块路径 (-pl) Maven 测试目标模块,如 app/test
生成后在浏览器中打开报告 完成后自动打开报告

前置条件

1. 项目必须配置 JaCoCo Maven 插件

覆盖率报告依赖 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-agent goal:

<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>

2. 其他前置条件

  • Maven 项目,且已在 IDEA 中导入(View → Tool Windows → Maven
  • 项目已编译(各模块存在 target/classes
  • 已运行过测试并产生 jacoco.exec(勾选「运行 Maven 测试 (Step 1)」时会自动执行 clean verify 生成)
  • 项目代码位于 Git 仓库中,且当前 IDEA 项目能访问远程仓库(用于拉取分支对比)

使用流程

  1. 打开项目,点击 Tools → 生成增量覆盖率报告
  2. 填写 Git 地址,选择 Base / Now 分支
  3. 确认 SSH 私钥与测试模块路径
  4. (可选)已跑过全量测试时,取消勾选「运行 Maven 测试 (Step 1)」以跳过测试
  5. 点击「生成报告」
  6. 等待后台任务执行完成,浏览器自动打开 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 已存在的场景。

About

JaCoCo Incremental Test Coverage Report Generator IntelliJ IDEA Plugin, based on Git branch comparison.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages