测试如何用Jacoco做代码覆盖率
测试如何利用Jacoco做代码覆盖率
·
一、JaCoCo简介
JaCoCo(Java Code Coverage)是一款开源的 Java 代码覆盖率工具,支持 行覆盖率、分支覆盖率、方法覆盖率 等指标。
它通常与构建工具(Maven、Gradle)集成,生成 HTML/XML 格式的覆盖率报告
二、安装与配置
1、 通过 Maven 配置
添加 JaCoCo 插件
在项目的 pom.xml 中添加以下配置:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.10</version> <!-- 使用最新版本 -->
<executions>
<execution>
<goals>
<goal>prepare-agent</goal> <!-- 启动覆盖率代理 -->
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase> <!-- 在测试阶段生成报告 -->
<goals>
<goal>report</goal> <!-- 生成 HTML/XML 报告 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
三、运行测试并生成报告
1、执行以下命令:
mvn clean test # 运行测试并生成覆盖率数据(jacoco.exec)
mvn jacoco:report # 生成 HTML 报告(默认在 target/site/jacoco/index.html)
2、查看报告,路径为target/site/jacoco/index.html
3、报告展示
4、报告详情展示
四、总览页面:
行覆盖率(Line Coverage):覆盖的代码行百分比。
分支覆盖率(Branch Coverage):覆盖的代码分支(如 if/else)百分比。
方法覆盖率(Method Coverage):覆盖的方法百分比。
类覆盖率(Class Coverage):覆盖的类百分比。
五、详细页面:
点击包名 → 类名 → 进入代码行级覆盖详情。
绿色:已覆盖的代码行。
红色:未覆盖的代码行。
黄色:部分覆盖的分支(如 if 条件仅满足一种情况)。
六、定位并修复问题
常见问题类型
问题类型 | 现象 | 解决方法 |
---|---|---|
未覆盖行 | 代码行标记为红色 | 补充测试用例调用该行代码 |
未覆盖分支 | 分支条件未完全满足 | 增加测试用例覆盖所有分支条件 |
无用代码 | 代码被覆盖但实际无用 | 删除未使用的代码 |
异常路径 | 异常处理逻辑未覆盖 | 添加测试触发异常场景 |
更多推荐
所有评论(0)