jacoco检测功能或自动化测试覆盖率

news2025/1/11 7:10:39

参考文档:http://t.csdn.cn/QqCSh

http://t.csdn.cn/HonVL

目录

下载jacoco

启动jacocoagent监控被测项目

执行手工测试

生成exec文件

生成report报告

jacoco代码覆盖率报告分析

 


 

下载jacoco

http://t.csdn.cn/HonVL

我下载的最新的 jacoco-0.8.10.zip

下载后解压到E盘

启动jacocoagent监控被测项目

mvn clean package打包项目为jar包

上传至test文件夹下,使用下列命令启动项目,并用jacoco用8080端口监听项目运行

java -javaagent:‪E:\jacoco-0.8.10\lib\jacocoagent.jar=includes=*,output=tcpserver,port=8080 -jar ‪E:\jacoco-0.8.10\test\LiuMa-1.2.1.jar

就这个命令,搞了好久第一个E前面没空格

直接输入会显示特殊符号需要删一下

Error opening zip file or JAR manifest missing : Error occurred during initialization of VM agent library failed to init: instrument

这个端口8080是jacoco的监听端口。将来dump文件,都是通过端口为8080的jacocoagent服务实现的。如果端口被占用就换一个

执行手工测试

手工测试,或者自动化测试,jacoco会监听到操作,给代码插桩

生成exec文件

cli包dump生成exec文件(注意一定要测试完毕之后)

java -jar E:\jacoco-0.8.10\lib\jacococli.jar dump --address 127.0.0.1 --port 8081 --destfile E:\jacoco-0.8.10\test\LiuMa-1.2.1.exec

生成report报告

java -jar E:\jacoco-0.8.10\lib\jacococli.jar report ‪E:\jacoco-0.8.10\test\LiuMa-1.2.1.exec --classfiles F:\LiuMa\Liuma-platform\LiuMa-backend\target\classes --sourcefiles F:\LiuMa\Liuma-platform\LiuMa-backend\src\main\java --html html-report --xml report.xml --encoding=utf-8

#--sourcefiles 本地被测项目的源码

#--classfiles 为本地被测项目的字节码路径

这两个路径是源码里的。

执行命令后,在本地生成一个html-report 文件夹

index.html就是报告。

jacoco代码覆盖率报告分析

Jacoco是从代码指令(Instructions, Coverage),分支(Branches, Coverage),圈复杂度(Cyclomatic Complexity),行(Lines),方法(Methods),类(Classes)等维度进行分析的。



作者:奔跑的小小鱼
链接:https://www.jianshu.com/p/ef987f1b6f2f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/602326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟化技术 — Cgroups 与 Namespaces 支撑实现的操作系统虚拟化

目录 文章目录 目录操作系统虚拟化(容器技术)的发展历程ChrootCgroupsCgroup SubsystemsCgroup FilesystemCgroup HierarchyCgroups 的操作规则Cgroups 的代码实现 NamespacesUTS namespacePID namespaceIPC namespaceMount namespaceNetwork namespaceU…

mysql order by 索引问题综合分析

一,文章1 Mysql-索引失效 order by优化_orderby索引失效_zyk1.的博客-CSDN博客 总结: 0,索引 与 查询条件 与 排序字段关系,Using filesort出现场景 1.联合索引,最左匹配原则,不仅查询条件需要遵循&…

vivado FIFO的Standard 和 FWFT模式

vivado FIFO的Standard 和 FWFT模式 Standard 模式读操作 对于标准 FIFO 读取操作,在断言读有效后,如果 FIFO 非空,存储在FIFO中的下一个数据被驱动到输出总线(dout)上和VALID标志有效。 下图显示标准模式下的读数据…

ChatGPT介绍与使用场景

ChatGPT是OpenAI开发的一款基于GPT-3和GPT-4的人工智能聊天机器人。“GPT"代表的是"Generative Pre-trained Transformer”,这是一种深度学习技术,使用人工神经网络来生成类似人类的文本。 ChatGPT能够处理各种对话任务,包括回答问…

教您如何快速自助搭建一个元宇宙场景

【导语】 在数字化时代,营销方式正经历着巨大的变革。而在这场变革的浪潮中,元宇宙编辑器凭借其独特的元宇宙展厅解决方案,为企业和个人提供了快速、简便的自助搭建元宇宙场景的机会。 今天,让我们一起走进元宇宙编辑器的世界&…

如何将Windows 7系统镜像部署到不同的硬件计算机?

案例:将Windows 7系统镜像恢复到另一台电脑 “我有一台运行 Windows 7 的电脑,我已经创建了一个系统镜像并希望将其加载到另一台电脑上。但是,当我运行恢复控制台时,我不断收到错误消息。这让我想知道是否可以创建 Windows 7 系…

前端面试技巧?第一手面试真题!

面试有哪些套路和技巧? 第一次去面试,该注意什么? 怎么说话能打动面试官,成功入职? 当你褪去青涩,将头发梳成大人模样走向面试之路时,你们的搜索记录和行为早已暴露了自己内心状态&#xff1a…

数据结构和算法的基本概念

数据结构概念 1.数据:所有能输入计算机且能被计算机处理的符号总称 2.数据元素:是数据的基本单位,表示数据集合中的一个个体。 3 .数据项:数据元素中有独立含义的最小单位。 数据结构:相互之间存在一定关系的数据元素的…

Layui时间选择设置只能选择整点半点,并隐藏秒钟部分

文章目录 1.整点半点选择2.隐藏秒选择部分3.默认值处理3.1 操作done函数3.2 操作ready函数 1.整点半点选择 处理思路:通过循环将使用不到的时间点去除掉,关键代码位于ready函数 //选择起止时间 layui.laydate.render({elem: .laydate-times,type: &quo…

第五章 Electron|Node 使用cheerio 爬虫

一、cheerio是什么可以做什么 👇 👇 👇 Cheerio是一个快速、灵活且精益的jQuery核心实现,用于在Node.js环境中解析HTML文档。它可以帮助您在服务器端轻松地从HTML文档中提取数据,比如从网页中提取文章标题、内容、图片…

【JVM】.class文件如何在JVM中运行的?

一、先认识JVM的组成 java虚拟机整体包括:类加载系统、运行时数据区、执行引擎、垃圾回收器。 (1)方法区:线程共享,存储Class信息、常量、静态变量等等; jdk1.6~1.7时称为永久代,存储常量、Cla…

js常见面试题整理

1:JavaScript 有哪些数据类型 答: JavaScript 的数据类型分为原始类型和对象类型。 原始类型有 7 种,分别是: BooleanNumberBigIntStringNullUndefinedSymbol 对象类型(也称引用类型)是一个泛称&#x…

vue3 中使用indexDb

1.indexDb.js const indexDB window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB; class IndexDBCache {// 构造函数constructor() {this._db null; //数据库this._transaction null; //事务this._request null;this._dbName "loginInfoDb"; …

API ‘variantOutput.getPackageLibrary()‘已过时的解决方法

一个发布到maven central的android库项目,为了方便管理,在build.gradle文件中加入了打包处理的一段脚本: //生成aarlibraryVariants.all { variant ->def name "library-${versionMajor}.${versionMinor}.${versionPatch}.aar"…

VUE 3.0 + NGINX + Hls.js + OBS -- 直播推拉流、流视频播放

🛴🛴前言: 该 Demo 基于 OBS推流 Nginx Vue 3.0 Nplayer.js hls.js ,目的只是实现流媒体播放,以及简易推拉流直播。 文章目录 前端组件 NPlayer.js安装 nplayer.js 流视频播放页面元素初始化播放器清晰度控件样式…

D*算法详解 (D星算法 / Dynamic A*算法/ Dstar算法)(死循环解决)

所需先验知识(没有也无大碍,只是了解的话会对D*的理解有帮助):A*算法/ Dijkstra算法 何为D*算法 Dijkstra算法是无启发的寻找图中两节点的最短连接路径的算法,A*算法则是在Dijkstra算法的基础上加入了启发函数h(x)&am…

js正则中的match()

在前端开发中,正则表达式是一大利器。所以我们这次就来讨论下match()方法。 match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表达式。该方法绝…

windows 达梦数据库服务连接时提示:登录服务器失败,错误号6001,错误消息:网络通信异常 之数据库服务不存在的处理方式

在windows客户端上连接部署在windows操作系统上的达梦数据库, 使用DM管理工具连接数据库 正确输入用户名与密码之后点击确定按钮之后出现: 登录服务器失败,错误号6001,错误消息:网络通信异常 现象 如下图所示&#…

银行从业资格证 个人理财 各种年金计算公式总结

变量说明: C C C :每期投入的现金流 r r r:利率(收益率/贴现率) n n n :计息期数; F V FV FV:终值 P V PV PV:现值 推导计算过程用到等比数列求和公式 S n a 1 ∗ 1 −…

【算法训练(day7)】区间和并,离散化数组模板

目录 一.区间和并 二 .离散化数组 一.区间和并 问题:给定 n个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3][1,3] 和 [2,6][2,6] 可以合并为一个区间 [1,6][1…