Jacoco增量代码覆盖率工具使用心得

本文介绍了Jacoco这个开源代码覆盖率工具的背景和功能,包括指令级、分支、行、方法和类等覆盖规则。重点讲解了在Maven项目中启用Jacoco的步骤,通过添加依赖、配置插件并执行命令来实现代码覆盖率的统计。文章适合初学者,旨在帮助理解Jacoco在实际项目中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

这是本人第一次写博文,之前有很多问题及学习过程均没有通过博客来记录,这也是个人感觉比较遗憾的。以后会坚持写博文的习惯,也欢迎各位在每篇博文留言处指正错误和提出建议。

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 的经历

  1. 在 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>  此处为指定的目标代理类型 --> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值