Jacoco覆盖率报告解读

Mon 06 February 2017

Jacoco报告

  • Instructions: Java 字节指令的覆盖率。执行的最小单位,和代码的格式无关。
  • Branches: 分支覆盖率。注意,异常处理不算做分支。
  • Cxty(Cyclomatic Complexity): 圈复杂度, Jacoco 会为每一个非抽象方法计算圈复杂度,并为类,包以及组(groups)计算复杂度。圈复杂度简单的说就是为了覆盖所有路径,所需要执行单元测试数量,圈复杂度大说明程序代码可能质量低且难于测试和维护。
  • Lines: 行覆盖率,只要本行有一条指令被执行,则本行则被标记为被执行。
  • Methods: 方法覆盖率,任何非抽象的方法,只要有一条指令被执行,则该方法被计为被执行。
  • Classes: 类覆盖率,所有类,包括接口,只要其中有一个方法被执行,则标记为被执行。注意:构造函数和静态初始化块也算作方法。

源码覆盖标记

钻石代表分支覆盖情况

  • 红色钻石:这一行没有分支被执行
  • 黄色钻石:这一行中只有部分分支被执行
  • 绿色钻石:这一行的所有分支都被执行

背景颜色代表指令覆盖率

  • 红色背景:这一行并没有任何指令被执行
  • 黄色背景:这一行的部分指令被执行
  • 绿色背景:这一行的所有指令都被执行了

引用

  • http://www.eclemma.org/jacoco/trunk/doc/counters.html
  • http://gold.xitu.io/entry/57b2cea7a341310060feb804
  • http://www.eclemma.org/userdoc/annotations.html
  • 圈复杂度:http://www.cnblogs.com/makemelaugh/archive/2010/06/06/1752832.html

Category: 工具 Tagged: tools