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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS】重采样栅格像元匹配问题:不同空间分辨率栅格数据统一

重采样栅格像元匹配问题:不同空间分辨率栅格数据统一 原始数据数据1:GDP分布数据2.1:人口密度数据2.2:人口总数数据3:土地利用类型 数据处理操作1:将人口密度数据投影至GDP数据(栅格数据的投影变…

混合励磁电机(混磁电机)为新型电机 规模化应用仍需进一步验证

混合励磁电机(混磁电机)为新型电机 规模化应用仍需进一步验证 混合励磁电机(HEM)简称混磁电机,是一种新型电机,即在永磁电机基础上,增设电励磁绕组,并进行结构调整而形成的。混磁电机…

数据结构(C语言)代码实现(九)——迷宫探路表达式求值

目录 参考资料 迷宫探路 顺序栈头文件SqStack.h 顺序栈函数实现SqStack.cpp 迷宫探路主函数 表达式求值 链式顺序栈头文件LinkStack.h 链式顺序栈函数实现LinkStack.cpp 表达式求值主函数 测试结果 参考资料 数据结构严蔚敏版 2021-9-22【数据结构/严蔚敏】【顺序…

代码随想录-力扣刷题-总结笔记01

代码随想录:代码随想录力扣:力扣 (LeetCode) 全球极客挚爱的技术成长平台 目录 01、代码随想录 00、琐碎知识点 01、数组 02、链表 03、哈希表 04、字符串 05、双指针法 06、栈与队列 6.1、栈 6.2、队列 07、二叉树 7.1、前中后序-递归遍历 …

Python学习 day05(异常)

异常 为什么要捕获异常 当程序遇到了BUG,如果不对BUG进行手动捕获,那么整个程序就会因为一个BUG而停止运行,这在有些情况下是会造成很大的损失,但是如果我们进行了手动捕获,那么整个程序会继续运行捕获异常的作用在于&…

抖音小店怎么申请入驻?具体的操作流程,今天一文详解!

大家好,我是电商小布。 想要来加入到抖音小店这个市场当中,我们第一件事就是要完成小店的入驻工作。 具体的流程是什么样的?具体都需要哪些内容呢? 接下来,小布就带大家详细了解一下。 1、注册 这里我们直接采用手…

电子邮箱怎么设置?如何配置邮箱SMTP服务?

电子邮箱服务器怎么设置?设置电子邮箱服务器的方法? 电子邮箱已成为我们日常生活和工作中不可或缺的一部分。它不仅是接收和发送邮件的工具,更是我们与外界沟通的重要桥梁。那么,如何设置电子邮箱,并配置SMTP服务呢&a…

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘报错解决

安装labelme出错了 根据爆栈的提示信息,我在cmd运行以下命令之后一切正常了,解决了问题! pip install urllib31.26.6参考网址:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ‘ssl’ module is compile…

抖音视频批量下载软件|视频评论采集工具

抖音视频评论采集软件是一款基于C#开发的高效、便捷的工具,旨在为用户提供全面的数据采集和分析服务。用户可以通过关键词搜索抓取视频数据,也可以通过分享链接进行单个视频的抓取和下载,从而轻松获取抖音视频评论数据。 批量视频提取模块&a…

绿色蔬菜销售管理系统

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一 、设计说明 1.1 研究…

雾锁王国服务器要开服务器吗?

雾锁王国要开服务器吗?可以使用官方服务器,也可以自己搭建多人联机服务器,更稳定不卡,畅玩开黑。阿腾云分享atengyun.com给大家目前阿里云和腾讯云均提供雾锁王国服务器和一键搭建程序,成本26元即可搭建一台自己的雾锁…

对话式 AI 简化业务的 5 种方式

告别繁琐工作,对话式AI让内部沟通更高效 对话式人工智能正在彻底改变企业与客户互动、简化运营并增强客户体验的方式。 对话式人工智能可以通过以下五种方式改变您的业务: 1. 对话式人工智能:增强客户服务对话式人工智能通过聊天机器人和虚拟…