写在前面
这是本人第一次写博文,之前有很多问题及学习过程均没有通过博客来记录,这也是个人感觉比较遗憾的。以后会坚持写博文的习惯,也欢迎各位在每篇博文留言处指正错误和提出建议。
Jacoco是什么?
Jacoco 是一个开源的覆盖率工具。Jacoco 可以嵌入到 Ant 、Maven 中,并提供了 EclEmma Eclipse 插件,也可以使用 Java Agent 技术监控 Java 程序。很多第三方的工具提供了对 Jacoco 的集成,如 sonar、Jenkins、IDEA
Jacoco支持哪些覆盖规则?
Jacoco 包含了多种尺度的覆盖率计数器,包含指令级(Instructions,C0 coverage),分支(Branches,C1 coverage)、圈复杂度(Cyclomatic Complexity)、行(Lines)、方法(Non-abstract Methods)、类(Classes)。
至于这些覆盖的规则和类型,则需要你对测试方法的原理有一定的了解,此处不做过多介绍和解释
使用说明
- Jacoco官网介绍:
对于Jacoco的使用,详细使用和介绍可以前往Jacoco官网进行详细的了解。官网中,对Jacoco的使用方法和插件的下载都有明确的说明和指向。官网中,主要介绍了如何在Eclipse中集成并使用Jacoco插件。
如果想要在官网中快速使用文档介绍可以点击Jacoco用户文档前往 - 使用方式:
- 结合 Tomcat
该使用方式,需要我们手动创建 build.xml 文件,并在文件中配置对应的服务器地址,服务监控地址,*.exec 文件的生成路径,目标覆盖文件地址,源代码地址等。使用起来,相对比较复杂。- 采用 Java Agent
因为 Jacoco 采用的是Java编写的插件,所以我们也可以通过在运行对应Java文件的是时候配置对应的 JVM参数 信息。
例如: -javaagent:[yourpath/]jacocoagent.jar=[option1]=[value1],[option2]=[value2]- Maven 配置
对于 Maven 配置,对于我们新手使用起来更加简单,方便,快捷,易于上手。(Ant配置的方式参考 Ant使用Jacoco)
启用Jacoco(Maven的方式)
说明:因为本人对 Maven 的使用较为熟练,所以介绍一下自己在 Maven 中使用 Jacoco 的经历
- 在 Maven 中添加对 Jacoco 的依赖
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 以下为Jacoco 的配置信息-->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<!--
指明你所使用的版本号,对于目前的最新版本:0.8.6-SNAPSHOT,
要求我们的Maven版本需在3.0以上,JDK环境在1.5以上
-->
<version>${last-version}</version>
<executions>
<!-- <execution> 标签用于声明需要执行的指令代理片段 -->
<execution>
<!-- <id> 此处为指定的代理id编号,个人理解为对应目标的id标识 -->
<id>default-prepare-agent</id>
<!-- <goals> 用于配置多个代理,可用于将多个代理结合起来一次性执行 -->
<goals>
<!-- <goal> 此处为指定的目标代理类型 -->