代码行覆盖率学习

news2025/7/12 9:45:39

【强力推荐】jacoco代码测试覆盖率实战教学全集,7天从入门到精通【理论+实战 赶紧拿走】_哔哩哔哩_bilibili

 

on-the-fly: 测试的时候代码是动态的, 需要测试就帮你插桩, 不测就不帮你插桩

offline: 先把被测代码拿到一次性直接插桩, 一运行桩就已经插好了, 直接生成报告

大多数时候都可以使用on-the-fly, 这样不会污染源码

二、jacoco的使用

拷贝被测试项目 

 (1)下面命令的含义: 这个命令会启动被测项目, 并且去访问localhost+6300的时候就会把覆盖率数据一股脑输出出来

 javaagent: 使用javaagent去启动

include: 表示需要在哪些包下面插桩 

*表示所有的(也可以根据自己的需求选择包)

output: 输出有三个选项: tcpserver:执行下6.4的命令时会将所有内容一股脑输出; tcpclient: 用的比较少; file在本地生成文件,终止的时候就会把所有插桩的内容写到文件中

port: 使用tcpserver就需要指定端口

(2)

(3)生成覆盖率的报表: 必须有class信息、java文件、源文件

 

eg:

先启动jacoco

使用postman测试接口是否成功 接口返回成功后, 查看代码是否被覆盖

查看接口是否被覆盖之前不能停止之前的服务, 否则请求不到6300, 执行截图6.4中的命令

执行截图6.5 生成报表

查看index.html文件 

element:被覆盖的对象: 可能是一个包下面的, 可以是一个类或者一个对象

Missed Instructions Cov: 代码覆盖率, 字节码的覆盖率

Cov就是覆盖率的意思

Missed Branches: 分支

Missed Cxty: 代码里面的if switch, while, for等, 代码循环等的流程

Missed Lines: 行

Missed Methods: 方法

Missed Classed: 类

2、jacoco的增量覆盖: 对比两次发布版本增量覆盖率之间的区别(只收集被更改的代码, 不看全量的, 上面的方式是看的全量的)

之前都是针对一次性的版本的方式 

 

jacoco处理包二次开发,生成增量报告

 

获取两次提交代码的差异 

eg: 拷贝后的目录:

修改包文件: 将原先的demo-0.0.1删除, 将新拷贝进来的spring...修改为 demo-0.0.1,得到下面的目录

启动jacoco 做测试: 启动postman捅接口

生成exec文件 计算增量代码

访问上面生成的html链接 发送之后, 可以看到哪里发生了变化

拷贝上面的uiniquoData放到上面截图7.3中的4步骤,获取增量报告 

加参数后运行是增量, 不加参数就是全量 

查看增量的报告, 只会统计发生报告的类

 

 

         上面使用了nohup后台运行的方式, 启动脚本后不会被关掉: 因为jekins 有守护进程的概念,当脚本跑完之后会自动把pipeline中启动的项目关掉

jekins可以直接搜索安装jacoco相关的插件 但是由于增量有二次整合, 所以不能直接采用上面的方式安装插件

jekins和jacoco结合一些页面操作, 平时使用不多, 需要使用的时候在看即可

先把被测文件放到jekins上, 再到jekins上安装pipe插件, 输入上面的脚本 

(3)整合jekins生成报告

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

如何把一个视频分割成不同时长的多个小视频

大家平时找素材是不是有点困难,如何把一个视频一个分割成多个不同时长的小视频呢,分割视频时能不能按我们需要来分割,今天小编带大伙来了解决下分割视频操作方法和步骤。 先来看下原来视频,原视频时长是比较长的 接下来我们准备一…

掌握这些 Spring Boot 启动扩展点,已经超过 90% 的人了!

1.背景 Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用…

Docker - Docker部署war包

使用Docker部署war项目,必须要用容器,我们就用tomcact容器,其实都是将war包丢到tomcat的webapps目录下,tomcat启动的情况下会自动解压war包 部署war包有两种方式 1、在Docker中安装tomcat容器的镜像,然后把war包丢到…

【无人机】模拟一群配备向下摄像头的移动空中代理覆盖平面区域(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

极速Go语言入门(超全超详细)-基础篇2

文章目录函数进阶结构体接口继承type值类型与引用类型值传递、引用传递打包、引用包工具类打包文件代码引用包代码方法异常捕捉处理字符串常用函数日期常用函数管道(channel)书接上篇:极速Go语言入门(超全超详细)-基础篇 整个基础篇合计32000字左右,如有遗漏可以私…

RDD—Transformation算子

Spark核心编程(Spark Core) 文章目录Spark核心编程(Spark Core)1. 了解RDD1.2 RDD五大特性1.3 WordCount案例分析2 RDD编程入门2.1 RDD的创建2.2 RDD算子2.3 常用Transformation 算子小案例(客户端,集群&am…

Flutter高仿微信-第45篇-群聊-文本

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 实现代码: 详情请参考Flutter高仿微信-第44篇-群聊, 这里…

Win10更新后卡在输入密码的界面

注意: 系统没问题时候建议创建还原点,以防万一: 创建还原点方法: 设置-系统-关于-系统保护-创建还原点。 下面介绍Win10更新后卡在输入密码的界面解决方法。 此时进不去系统,想进行还原点还原。 首先需要进入疑难解答…

安全分析能力的核心能力

核心能力 为了加快安全分析能力更全面、更深入的自动化 ,SecXOps 的目标在于创建一个集成的用于 Security 的 XOps 实践,提升安全分析的场景覆盖率和运营效率。SecXOps 技术并不 015 SecXOps 技术体系 是 Ops 技术在安全领域的简单加和,SecXO…

第二章:线程基础知识复习

为什么要学好多线程如此重要? 硬件方面 摩尔定律 它是由英特尔创始人之一-Gordon Moore(戈登●摩尔)提出来的。其内容为: . 当价格不变时,集成电路上可容纳的元器件的数目约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所…

力扣 36. 有效的数独 C语言实现

题目描述: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参…

嵌入式驱动初级-阻塞与非阻塞

文章目录前言一、五种IO模型二、阻塞与非阻塞三、多路复用四、信号驱动前言 记录嵌入式驱动学习笔记 一、五种IO模型 当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式 IO 就会将应用程 序对应的线程挂起,直到设备资源…

LeetCode刷题复盘笔记—一文搞懂纯0-1背包问题(动态规划系列第六篇)

今日主要总结一下动态规划背包问题的基础——纯0-1背包问题 在Leetcode题库中主要都是01背包和完全背包的应用问题,所以主要掌握这两个背包问题 题目:纯0-1背包问题 题目描述: 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是wei…

推特自动发帖,全天占据核心流量

利用热门趋势和Hashtags标签 Twitter有一个热门趋势,跟微博热搜是差不多的,卖家可以多关注一下热门趋势,看看有没有和产品相关的内容。在帖子中加入趋势性和热门的标签,是一种非常好的营销方式。 这一方面能够增加推文的热度&am…

【Linux】(五)GateWay远程开发方式-实验室服务器使用GateWay远程开发

Jetbrains GateWay 方式系列文章一、服务器情况简介1.1服务器及用户1.2 cuda1.3 conda环境二、Jetbrains GateWay方式连接2.1 下载2.2 配置2.3 连接管理及附加说明2.3.1 关闭或退出2.3.2 重连附录公共数据集系列文章 (一)服务器初次配置及安装vncserver…

基于MxNet实现目标检测-YoloV4【附部分源码及模型】

文章目录前言目标检测发展史及意义一、数据集的准备1.标注工具的安装2.数据集的准备3.标注数据4.解释xml文件的内容二、网络结构的介绍三、代码实现0.工程目录结构如下1.导入库2.配置GPU/CPU环境3.数据加载器4.模型构建5.模型训练1.学习率设置2.优化器设置3.损失设置4.循环训练…

Hive基本使用

Hive系列第三章 第三章 基本使用 1、 创建库:create database mydb; 2、 查看库:show databases; 3、 切换数据库:use mydb; 3.1 访问Hive的方式 3.1.1 直接可以在客户端Hive进入 见2.5.8 启动hive客户端 3.1.2 使用JDBC方式 先知道&am…

汽车零部件加工行业工业互联网智能工厂解决方案

汽车零部件分类 汽车零部件是汽车工业发展的基础。按功能分类如下: 零部件分类 主要产品 发动系统 发动机总成、滤清器、气缸及部件、油箱、曲轴、凸轮轴、气门及部件、皮带、增压器、化油器、燃油喷射装置、其他发动系统 传动系统 离合器、减速器总成、变速器…

【C++ STL】-- 二叉搜索树

目录 二叉搜索树概念 二叉搜索树的应用 二叉搜索树的实现(K模型) 构造函数 默认拷贝构造函数 赋值运算符重载函数 普通写法: 进阶写法: 析构函数 插入函数(Insert)的实现 常规实现: …

解决Windows环境下的docker中修改了mysql的配置文件之后启动不了的问题

** 前情简介: ** 由于在docker中安装的mysql5.7中区分表的大小写,进入到mysql的命令行模式之后就修改配置文件,主要修改 lower_case_table_names1修改之后就启动再也启动不起来了,说我配置文件改错了 2022-11-25 14:47:5400:0…