如何使用golang自带工具对代码进行覆盖率测试
在 Go 语言中,测试代码覆盖率通常使用 go test 命令结合 -cover 和 -coverprofile
1. 基本代码覆盖率报告
在项目目录下运行以下命令
go test -cover
这将在控制台输出一个代码覆盖率的百分比。但是,这种方式不会保存覆盖率数据(可以指定目录,如:./test)

2. 生成带覆盖率数据文件
go test -coverprofile=demo6.out
这将在当前目录下生成一个名为 demo6.out 的文件,该文件包含了详细的覆盖率数据。
3. 通过go tool 命令查看上一步生成的覆盖率信息
go tool cover -html=demo6.out
运行命令会自动打开浏览器,页面会显示哪些覆盖了那些未覆盖:
4 查看具体函数覆盖率报告
go tool cover -func=demo6.out
如下

测试使用的代码
calculator.go
// mathutil/add.go
package demo6import "errors"func Add(a, b float64) float64 {return a + b
}func Subtract(a, b float64) float64 {return a - b
}func Multiply(a, b float64) float64 {return a * b
}func Divide(a, b float64) (float64, error) {if b == 0 {return 0, errors.New("division by zero")}return a / b, nil
}
calculator_test.go
package demo6import ("testing"
)
func TestAdd(t *testing.T) {Add(1,2)
}
func TestSubtract(t *testing.T) {Subtract(1,2)
}

相关文章:
如何使用golang自带工具对代码进行覆盖率测试
在 Go 语言中,测试代码覆盖率通常使用 go test 命令结合 -cover 和 -coverprofile 1. 基本代码覆盖率报告 在项目目录下运行以下命令 go test -cover这将在控制台输出一个代码覆盖率的百分比。但是,这种方式不会保存覆盖率数据(可以指定目…...
Android studio版本和Android gradle plugin版本对应表
1.Android studio 版本的升级,一个方面上看主要是升级对AGP最高版本的支持 2.那为什么AGP要出高版本呢,主要支持高版本的API,真是一环扣一环...
JavaRedis-主从集群-分片-数据结构-回收处理-缓存问题
一、主从集群 1.主从集群 主从集群读写分离,主能读能写,从只能读,读的数据是同步主的 docker搭建: docker-compose 这里设置网络模式为model,就直接暴露在了宿主机中,就不用映射端口了 不改就是默认的桥…...
Java原生JDBC概览
Java原生JDBC概览 一、是什么? JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。 Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现对数据库的访…...
C# 跨线程访问UI组件,serialPort1串口接收数据
在Windows应用程序(例如WinForms或WPF)中,UI组件(如按钮、文本框等)都在主线程(也称为UI线程)上运行。当你在一个非UI线程(例如,一个后台线程或者网络请求线程࿰…...
D - New Friends(AtCoder Beginner Contest 350)
题目链接: D - New Friends (atcoder.jp) 题目大意: 题目解析: 题目的大致意思: 假如A和B是朋友 B和C也是朋友 那么当A和C不是朋友的时候 可以通过B让A和C也成为朋友 问你增加了多少对的朋友关系 题目分析: 咱们可以从图论去考虑 当这一群是一个连通块 那么这一群点(人) 都…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(2)
1.问题描述: 怎么判断登录的华为帐号有变动? 解决方案: 华为帐号登录成功后会返回唯一标识OpenID和UnionID,如果切换不同的华为帐号登录,这个唯一标识会变。 OpenID是华为帐号用户在不同类型的产品的身份ID&#x…...
Web组态可视化编辑器 快速绘制组态图
演示地址:by组态[web组态插件] 随着工业智能制造的发展,工业企业对设备可视化、远程运维的需求日趋强烈,传统的单机版组态软件已经不能满足越来越复杂的控制需求,那么实现Web组态可视化界面成为了主要的技术路径。 行业痛点 对于…...
怎样在网上赚点零花钱?推荐十个正规的赚钱兼职平台
今天要和大家探讨一个激动人心的话题——网络赚钱。在这个互联网日新月异的时代,网络赚钱已经变成了触手可及的现实。如果你正打算在网上赚取一些额外收入,那么这篇文章绝对值得一读! 在这个信息泛滥的时代,网络赚钱的机遇随处可…...
手动操作很麻烦?试试这个自动加好友神器吧!
你是不是也觉得手动逐一输入号码或是微信号,再搜索添加很麻烦?试试这个自动加好友神器——个微管理系统,帮助你省去繁琐的手工操作,节省时间和精力。 首先,在系统上登录微信号,无论你有多少个微信号&#…...
金额转大写
金额转大写 /*** 金额转大写* param n* returns {string}*/ export const moneyUppercase (n) > {let fraction [角, 分];let digit [零, 壹, 贰, 叁, 肆,伍, 陆, 柒, 捌, 玖];let unit [[圆, 万, 亿],[, 拾, 佰, 仟]];let head n < 0 ? 欠 : ;n Math.abs(n);let…...
vue的axios配置超时时间;单个接口配置响应时间
vue项目中axios请求统一配置了超时时间,单独接口请求时重设超时时间 根据官网推荐:axios中文文档 1.配置的优先顺序 配置会以一个优先顺序进行合并。这个顺序是:在 lib/defaults.js 找到的库的默认值,然后是实例的 defaults 属性&…...
leetcode-盛水最多的容器-109
题目要求 思路 1.正常用双循环外循环i从0开始,内循环从height.size()-1开始去计算每一个值是可以的,但是因为数据量太大,会超时。 2.考虑到超时,需要优化一些,比如第一个选下标1,第二个选下标3和第一个选下…...
VMware ESXi中安装Proxmox VE
0、巴拉巴拉 前几天某行业HW,闲暇的时候几个技术人员聊天,臭味相投的聊到自己玩的东西。有个玩家说家里用工作站安装Proxmox VE,然后在上面安装软路由、安装NAS。我以前一直想玩玩,没有付诸行动,所以也想弄个集中的方案…...
Java(其十二)--集合·初级
ArrayList集合 集合有很多种,ArrayList 是最常用的一种,集合的作用相当于C中的STL 最显著的特点就是:自动扩容。 一般定义式 ArrayList list new ArrayList(); //该 list 是可以储存各种类型的数据的,要想约束储存的数据&#x…...
疯狂“造人”!美国两党共推新法案,5年培养100万AI及量子人才
当前,全球量子计算人才的短缺已成为制约该领域快速发展的关键瓶颈。 为了解决量子计算人才短缺的问题,各国政府和企业采取了积极措施,加大了对量子教育和培训的投入。根据美国参议院官网消息,2024年5月23日,美国两党议…...
Python 文件操作指南:使用 open 和 with open 实现高效读写
🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 简介 本系列文章主要分享文件操作,了解如何使用 Python 进行文件的读写操作,介绍常见文件格式的读取和写入方法,包括TXT、 CS…...
FasterNet代码阅读
FasterNet 类参数初始化 将图像切分为非重叠的图像块 PatchEmbed 类 将图像分解为非重叠的图像块有以下几个好处: 1. 缩小计算量:对于大尺寸的图像,直接对整个图像进行处理可能会导致计算和内存消耗过大。将图像切分为小块可以降低计算量…...
Rust开源Web框架Salvo源码编译
1.克隆源码: https://github.com/salvo-rs/salvo.git 2.进入salve目录并运行cargo build编译 编译成功 3.编译生成的库 4.安装salve-cli git clone --recursive https://github.com/salvo-rs/salvo-cli.git 编译salve-cli...
基于Java+SpringBoot+Mybaties-plus+Vue+elememt + uniapp 新闻资讯 的设计与实现
一.项目介绍 本系统分为 后端 和 小程序端 后端:点击登录按钮 设置个人中心、 管理员账号数据维护、 基础数据维护、 短视频信息维护(包括查看短视频留言、短视频收藏)、 论坛维护(增删改查帖子信息,包括查…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
