本文大纲
《我的敏捷软件项目管理实践》
代码覆盖率指标说明
目标
前面使用已使用JaCoCo覆盖率工具,执行代码覆盖率分析及生成了报告。
本文讲解怎么阅读这个报告 。
覆盖率指标说明
| 指标 | 说明 | |
|---|---|---|
| Instructions | Java字节指令的覆盖率。执行的最小单位,和代码的格式无关。 | |
| Branches | if\else代码逻辑分支覆盖率。注意异常处理不算做分支。 | 常用 |
| Cxty(Cyclomatic Complexity) | 圈复杂度, Jacoco 会为每一个非抽象方法计算圈复杂度,并为类、包、组(groups)计算复杂度。 圈复杂度简单地说就是为了覆盖所有路径,所需要执行单元测试数量,圈复杂度大说明程序代码可能质量低且难于测试和维护。 | |
| Lines | 代码行覆盖率,只要本行有一条指令被执行,则本行则被标记为被执行。 | 常用 |
| Methods | 方法覆盖率,任何非抽象的方法,只要有一条指令被执行,则该方法就会被计为被执行。 | 常用 |
| Classes | 类覆盖率,所有类,包括接口,只要其中有一个方法被执行,则标记为被执行。注意:构造函数和静态初始化块也算作方法。 | 常用 |
实例
工程级覆盖率报告
如下图是工程级覆盖率报告


包级覆盖率报告
如下图是Pageage包级覆盖率报告,本包下有8个类文件。

类级覆盖率报告
如下图是类级覆盖率报告,本包下有8个类文件。本类中有15个方法,可看到某个方法有N行代码及单元测试覆盖的行数。

方法级覆盖率报告
点击某个方法名,可展开看到源代码。
红色的是单元测试未能覆盖的行。
绿色的是单元测试已能覆盖的行。
