1 . 概念

Cobertura 是一款优秀的开源测试覆盖率统计工具,它与单元测试代码结合,标记并分析在测试包运行时执行了哪些代码和没有执行哪些代码以及所经过的条件分支,来测量测试覆盖率。除了找出未测试到的代码并发现 bug 外,Cobertura 还可以通过标记无用的、执行不到的代码来优化代码,最终生成一份美观详尽的 HTML 覆盖率检测报告。

2 . Maven集成Cobertura

2.1 pom.xml配置

<!-- 测试覆盖率插件 -->
              <plugin>
                   <groupId>org.codehaus.mojo</groupId>
                   <artifactId>cobertura-maven-plugin</artifactId>
                   <configuration>
                       <formats>
                            <format>html</format>
                            <format>xml</format>
                       </formats>
                   </configuration>
              </plugin>

2.2 运行

在工程根目录运行

mvn cobertura:cobertura

输出结果:

project_base$\target\site\cobertura\index.html

wKiom1dnq7ih8PZ5AAE1iXEu8Bg903.png

3 . 统计指标

代码覆盖率 = (被测代码 / 代码总数)* 100%。

3.1行覆盖

LineCoverage

它又被称作语句覆盖或基本块覆盖。这是一种较为常用且具有代表性的指标,度量的是被测代码中每个可执行语句是否被执行到。

3.2 条件覆盖

BranchCoverage

它度量的是当代码中存在分支时,是否能覆盖进入分支和不进入分支这两种情况。这要求开发人员编写多个测试用例以分别满足进入分支与不进入分支这两种情况。

3.3 路径覆盖

 

3.4 复杂度

complexity