go test用法(获取单元测试覆盖率)

go test用法(获取ut覆盖率)

为了提升系统的稳定性,一般公司都会对代码的单元测试覆盖率有一定要求。下面针对golang自带的测试命令go test做讲解。

1 命令

1.1 go test ./… (运行当前目录及所有子目录下的测试用例)

# 运行当前目录及其子目录下的测试用例
go test ./... 

1.2 go test dir0/…(运行指定目录及所有子目录用例)

# 运行dir0目录及其子目录下的用例
go test dir0/...

1.3 go test user…(运行user前缀的用例)

# 运行指定前缀的测试用例
go test user...

1.4 go test …(运行GOPATH下的所有用例)

# 运行GOPATH下的所有用例
go test ...

1.5 goland可视化执行

选中目录-鼠标右击-Run wtih Coverage
在这里插入图片描述

2 生成并分析覆盖率报告

2.1 生成报告

go test -mod=vendor -covermode=count -coverprofile=coverprofile.cov -run="^Test" -coverpkg=$(go list -mod=vendor ./... | grep -v "/test" | tr '\n' ',') ./...

或 非 vendor 模式:
go test -covermode=count -coverprofile=coverprofile.cov -run="^Test" -coverpkg=$(go list ./... | grep -v "/test" | tr '\n' ',') ./...
  • 执行命令之后会生成coverprofile.cov文件
    在这里插入图片描述

指令简单说明:

  1. mod=vendor: 加载依赖的方式:从本地vendor 目录加载。适用于服务器不能从外网下载依赖的情况
  2. covermode: count: 统计代码访问次数;set: 统计代码是否被访问;
  3. atomic: 一般在并发工程中使用(?)
  4. run: 正则方式指定需要运行的测试方法
  5. coverpkg: 指定业务代码路径,多个用逗号隔开,详细说明在后面
  6. ./…:遍历当前目录下测试文件,包括子目录

2.2 分析报告

①html方式查看:go tool cover -html=coverprofile.cov
# 通过html 文件打开(推荐,能看到方法细节):
go tool cover -html=coverprofile.cov

在这里插入图片描述

②命令行查看:go tool cover -func=coverprofile.cov
# 在命令行直接查看:
go tool cover -func=coverprofile.cov

在这里插入图片描述

参考:https://blog.csdn.net/xiaoliizi/article/details/107568024

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务

这篇文章,主要介绍如何通过Nginx服务器转发客户端的WebSocket接口到后端服务【知识星球】。 目录 一、Nginx配置WebSocket 1.1、Nginx配置内容 1.2、客户端请求地址 1.3、创建WebSocket测试工程 1.4、启动测试 1.5、WebSocket超时问题 1.5.1、设置超时时间 …

计算机网络——IPV4数字报

1. IPv4数据报的结构 本结构遵循的是RFC 791规范,介绍了一个IPv4数据包头部的不同字段。 1.1 IPv4头部 a. 版本(Version):指明了IP协议的版本,IPv4表示为4。 b. 头部长度(IHL, Internet Header Length&…

Adobe illustrator CEP插件调试

1.创建插件CEP面板,可以参考:http://blog.nullice.com/%E6%8A%80%E6%9C%AF/CEP-%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B/%E6%8A%80%E6%9C%AF-CEP-%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B-Adobe-CEP-%E6%89%A9%E5%B1%95%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8…

【Docker】安装及相关的命令

目录 一 Docker简介 1.1 是什么 1.2 优缺点 1.3 应用场景 1.4 安装 二 命令 2.1 Docker基本命令 2.2 Docker镜像命令 2.3 Docker容器命令 一 Docker简介 1.1 是什么 Docker是一个开源的应用容器引擎,它基于Go语言实现,并利用操作系统本身已有的…

LeetCode142. 环形链表 II刷题详解

今天力扣刷到了一个特别有意思的题目,于是就写了下面的题解来加深以下理解。 142. 环形链表 II - 力扣(LeetCode) 这个可以分为两大步去写,首先要判断链表是否有环,然后如果有环就去找到环的入口,没有环返…

【Vite】解决Vite http proxy error: Error: connect ECONNREFUSED

今天写bug,发现了这个问题 我经过我一晚上的搜索努力,在github上找到了解决办法,不得不说,交友网站还是很好用的。 参考 这一行是关键代码。 因为我连的是本地后台服务,所以最后配置成这样 server: {open: true,pro…

关于年化收益率的思考

近期,对于投资的年化收益率有一些思考,想着将这些思考整理一下,顺便也就记录在这里。 1. 计算方式 年化收益率常见的计算有三种:算数平均,几何平均,IRR。 1.1 算术平均 算数平均用于度量产品的回报率&a…

ChatGPT 正测试Android屏幕小组件;联想ThinkBook 推出透明笔记本电脑

▶ ChatGPT 测试屏幕小组件 近日 ChatGPT 正在测试 Android 平台上的屏幕小组件,类似于手机中的悬浮窗,按住 Android 手机主屏幕上的空白位置就可以调出 ChatGPT 的部件菜单。 菜单中提供了许多选项,包括文本、语音和视频查询的快捷方式&…

【Java设计模式】一、工厂模式、建造者模式、原型设计模式

文章目录 1、简单工厂模式2、工厂方法模式3、抽象工厂模式4、建造者模式5、原型设计模式 1、简单工厂模式 即由一个工厂决定创建哪一种产品类型的实例。 //抽象的课程类 public abstract class Course{//有一个制作课程的抽象方法public abstract void make(); }以上抽象类的…

袁庭新ES系列12节 | Elasticsearch高级查询操作

前言 上篇文章讲了关于Elasticsearch的基本查询操作。接下来袁老师为大家带来Elasticsearch高级查询部分相关的内容。Elasticsearch是基于JSON提供完整的查询DSL(Domain Specific Language:领域特定语言)来定义查询。因此,我们有…

SAP CAP(Cloud Application Programming)开发框架概述

CAP是什么 SAP云应用编程模型(CAP)是一个用于构建企业级应用的编程框架。它引导开发人员沿着经过验证的最佳实践的“黄金路径”以及丰富的开箱即用解决方案来构建应用。 与过度专注于技术细节相反,基于CAP的项目主要通过关注快速的业务实现而…

【virtual Box】功能速通:安装 Windows 和 Ubuntu

文章目录 一、虚拟机1.1 概述1.2 virtual box概述 二、新建虚拟机、删除、注册三、虚拟机内部设置3.1 安装增强功能驱动3.2 分辨率问题3.3 网络链接方式 一、虚拟机 1.1 概述 虚拟机(Virtual Machine,VM)是一种软件实现的计算机系统&#x…

pdf转word文档怎么转?分享4种转换方法

pdf转word文档怎么转?在日常工作中,我们经常遇到需要将PDF文件转换为Word文档的情况。无论是为了编辑、修改还是为了重新排版,将PDF转为Word都显得尤为重要。那么,PDF转Word文档怎么转呢?今天,就为大家分享…

js中的任务处理机制

众所周知(不知道的话去查),js是以单线程的方式执行的,在执行的过程中,某一时刻上只能执行一个任务,也就是说,我们写好了代码后执行的时候,程序是根据代码从上到下依次排队执行,只有上一个任务执…

ABAP - Function ALV 10 增加表头

有些需求会要求在ALV增加表头,大概长这样 REUSE_ALV_GRID_DISPLAY_LVC制造表头只需要加个传入参数I_CALLBACK_HTML_TOP_OF_PAGE并作处理就好了。 TYPES:BEGIN OF ty_data,sel TYPE char1,light TYPE iconname,name TYPE char10,score TYPE p LENGTH 2 DECIMA…

【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]

阅读导航 前言一、unordered系列容器二、unordered_map1. unordered_map简介⭕函数特点 2. unordered_map接口- 构造函数- unordered_map的容量- unordered_map的迭代器- unordered_map的元素访问- unordered_map的修改操作- unordered_map的桶操作 三、unordered_set1. unorde…

安全运营中心(SOC)综合指南

什么是安全运营中心(SOC) 安全运营中心,也称为信息安全运营中心 (ISOC),是结构良好的网络安全战略的核心。安全运营中心是一个集中式枢纽,无论是在组织内部还是外包,都致力于对整个…

配电网重构知识及matlab实现

配网重构中,很重要的一个约束条件为配网应随时保持开环、辐射的状态: 配电网系统是属于闭环设计但是开环运行的系统,因此,在开关的开闭过程中,随时保持配电网的开环状态时很重要。Mendoza等利用图论,尤其是…

安全防御-第六次

内容安全 攻击可能只是一个点,防御需要全方面进行 DFI和DPI技术--- 深度检测技术 DPI --- 深度包检测技术--- 主要针对完整的数据包(数据包分片,分段需要重组),之后对数据包的内容进行识别。(应用层&…

【Web安全靶场】sqli-labs-master 1-20 BASIC-Injection

sqli-labs-master 1-20 BASIC-Injection 文章目录 sqli-labs-master 1-20 BASIC-Injection第一关-报错注入第二关-报错注入第三关-报错注入第四关-报错注入第五关-报错注入-双查询注入第六关-报错注入-双查询注入第七关-outfile写入webshell第八关-布尔盲注第九关-时间盲注第十…