Java代码覆盖率工具之Jacoco
Java代码覆盖率工具之Jacoco
JaCoCo(Java Code Coverage)是一款面向Java语言的开源代码覆盖率工具,以其小型化和轻量化著称。它能够提供代码在测试过程中的覆盖率信息,帮助开发人员和测试人员识别未测试的代码部分,从而提高代码质量和测试的完整性。JaCoCo可以嵌入到Ant、Maven等构建工具中,也可以作为Eclipse插件使用,或者通过JavaAgent技术监控Java程序。
一、工作原理
JaCoCo通过对Java字节码进行插桩来收集覆盖率信息。插桩有两种主要方式:离线(offline)和在线(on-the-fly)。
- 离线模式:在编译时对代码进行插桩,生成插过桩的class或jar包。在测试这些插过桩的文件后,生成动态覆盖信息文件,最后统一处理这些覆盖信息并生成报告。
- 在线模式:在应用启动时加入JaCoCo agent进行插桩,实时地进行代码覆盖率分析。这种方式适用于开发和测试人员在使用应用期间进行覆盖率监测。
JaCoCo在执行测试用例时收集程序执行轨迹信息,并通过数据处理器结合程序执行轨迹信息和代码结构信息生成代码覆盖率报告。这些报告可以以html、xml等格式展示,便于开发人员和测试人员查看和分析。
二、在线模式
下载Jacoco:首先,您需要从官网下载Jacoco的最新版本。
可以从Jacoco的官方网站下载最新版本的Jacoco安装程序。

首先,解压缩已下载的JaCoCo安装程序:
unzip jacoco-0.8.12.zip

接下来,使用以下命令来启动应用程序并插桩:
java -javaagent:/opt/jacoco/lib/jacocoagent.jar=includes=*,output=tcpserver,port=6333,address=localhost,append=true -jar /opt/IAM_JAVA/IAM/src/MyApp.jar
命令说明:
/opt/jacoco/lib/jacocoagent.jar:JaCoCo代理JAR文件的安装目录。output=tcpserver:表示以TCP服务器模式启动应用程序并进行插桩。port=6333:JaCoCo TCP服务器的端口号(注意:原文中端口号为6333,但此处已更正为6300,以保持与命令中的端口号一致)。address=localhost:TCP服务器的访问地址,可以配置为127.0.0.1或实际访问的IP地址。/opt/IAM_JAVA/IAM/src/MyApp.jar:要运行的应用程序JAR文件。
在应用程序运行期间,使用以下命令生成覆盖率文件:
java -jar /opt/jacoco/lib/jacococli.jar dump --address localhost --port 6333 --destfile /opt/IAM_JAVA/IAM/jacoco.exec

最后,使用以下命令生成HTML格式的覆盖率报告:
java -jar /opt/jacoco/lib/jacococli.jar report /opt/IAM_JAVA/IAM/jacoco.exec --classfiles /opt/IAM_JAVA/IAM/src/bin --sourcefiles /opt/IAM_JAVA/IAM/src --html /opt/IAM_JAVA/IAM/report01
命令说明:
/opt/IAM_JAVA/IAM/jacoco.exec:覆盖率文件。/opt/IAM_JAVA/IAM/src/bin:包含编译后的类文件的目录。/opt/IAM_JAVA/IAM/src:包含Java源文件的目录。/opt/IAM_JAVA/IAM/report01:生成的HTML报告的输出路径。

完成上述步骤后,您可以访问生成的index.html文件来查看覆盖率报告。报告将展示应用程序的代码覆盖率情况,如图所示。




Java代码覆盖率工具之Jacoco的更多相关文章
- JAVA代码覆盖率工具JaCoCo-原理篇
JAVA代码覆盖率工具JaCoCo-原理篇 1.2 JAVA覆盖率工具介绍 1.3.3 Apache Maven方式 1.3.4 Eclipse EclDmma Plugin方式 JAVA代码覆盖率工 ...
- Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解
原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使 ...
- 【转】高效Java编程工具集锦
原文地址:http://geek.csdn.net/news/detail/57469 Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松.目前,市面上涌现出越来越多的高 ...
- Java开发工具安装步骤内容如下
Java开发工具安装步骤内容如下 安装 开发工具 STS 链接下载网址 eclipse 链接下载网址 JDK安装 jdk链接下载地址 Marven环境 marven链接下载地址 Tomcat tomc ...
- C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)
关于代码覆盖率统计工具,Linux平台下,gcc内置支持gcov,通过编译时加参数选项,进行代码插桩,从而实现代码覆盖率.在Windows平台下,早在几年前,我还没找到特别好用又开源的覆盖率工具,所以 ...
- JAVA开发工具eclipse中@author怎么改
1:JAVA开发工具eclipse中@author怎么改,开发的时候为了注明版权信息. 用eclipse开发工具默认的是系统用户,那么怎么修改呢 示例如图所示 首先打开Eclipse--->然后 ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- Java测试工具
1. 开源测试工具: http://www.open-open.com/43.htm 2. 10款常用的JAVA测试工具 :http://developer.51cto.com/art/200 ...
- Java json工具类,jackson工具类,ObjectMapper工具类
Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...
- 学习java随笔第二篇:java开发工具——Eclipse
java开发工具有很多这里我使用的是Eclipse. 首先我在官网上下载了Eclipse的软件包,下载地址:http://www.eclipse.org/downloads/,然后有在网上找了一个汉化 ...
随机推荐
- golang 正则表达式
package main import "bytes" import "fmt" import "regexp" func main() { ...
- 读书笔记-C#8.0本质论-07
19. 平台互相操作性和不安全代码 19.1 在托管平台调用非托管代码--P/Invoke模式 CLI通过P/Invoke功能对非托管DLL所导出的函数执行API调用.和类的所有普通方法一样,必须在类 ...
- JVM学习笔记-操作数栈(Operand Stack)
Like the local variables, the operand stack is organized as an array of words. But unlike the local ...
- python命令行工具之Click
Click 是一个简洁好用的Python模块,它能用尽量少的代码实现漂亮的命令行界面.它不仅开箱即用.还能支持高度自定义的配置. 示例: import click @click.command() @ ...
- SPRINGBOOT 热加载JAR包
1.概要 springboot 的程序一般打包程成jar包.我们有些情况下,我们需要对程序进行扩展,我们没办法对已打包的程序进行修改. 我们希望的做法是: 1.将我们的一些接口打包. 2.在扩展包时, ...
- 编译器-FIRST集合(补充:左递归)
上一篇中实现的First函数没有考虑左递归,在这对此说明和实现 1.立即左递归 A -> Ab|a 1.两步或两步以上产生的左递归 A -> Bc|a B -> Ab|d 前面的实现 ...
- JWT相关知识点
目录 一.jwt介绍和原理 概念 构成与工作原理 1.header 2.payload 3.signature 本质原理 jwt认证算法:签发与校验 签发:根据登录请求提交来的 账号 + 密码 + 设 ...
- 【Rive】波动文字
1 前言 本文将使用文本修改器(Text Modifiers)做文字动画,实现文字波动效果. 按以下步骤可以创建一个 Modifier Group 和 Range. 部分参数的释义如下. ...
- Error: Application Server not specified
在IDEA中tomcat不能运行,点开Edit Configuration发现如下图情况:tomcat图标猫上有个红叉,且下面有警告提示:Error: Application Server not s ...
- 浅谈LINUX中/DEV/VDA1文件满了解决方法
1. 先查看内存使用情况 df -h 1 2. 进入/dev/vdal的磁盘挂载的目录 /,查看各个文件占用大小 cd / du -sh * 1 2 注意:进入那个比较大的文件,我这里发现var这个文 ...