JaCoCo
JaCoCo(Java Code Coverage)是Java代码覆盖率分析工具,用来统计:
- 哪些代码被执行了
- 哪些代码没有执行
- 覆盖率百分比是多少
JaCoCo一般与JUint+Maven/Gradle一起使用,生成HTML报告
主要适合:
- 软件测试实验
- Java项目
- 单元测试覆盖率分析
| 覆盖类型 | 含义 |
|---|---|
| Line Coverage(行覆盖) | 哪些代码行被执行 |
| Branch Coverage(分支覆盖) | if/else/switch的分支覆盖情况 |
| Instruction Coverage(指令覆盖) | JVM字节码层面更细粒度的覆盖率 |
| Method Coverage(方法覆盖) | 调用了哪些方法 |
| Class Coverage(类覆盖) | 多少类被执行测试 |
Maven项目中使用JaCoCo示例
- 在
pom.xml添加插件
1 | <build> |
- 运行时测试生成覆盖率
在项目根目录执行:
1 | mvn test |
之后会生成:
1 | target/site/jacoco/index.html |
用浏览器打开即可查看覆盖率报告
- 运行时覆盖率报告示例
HTML报告中通常包含:
| 指标 | 含义 |
|---|---|
| Missed Instructions | 未执行的字节码指令数量 |
| Cov.(覆盖率%) | 覆盖比例 |
| Missed Branches | if/else未覆盖的分支 |
| Total Lines | 总行数 |
| Methods | 方法数 |
| Classes | 类数量 |
颜色含义:
绿色:已覆盖
红色:未覆盖
黄色:覆盖部分(比如只走了if,没有走else)
