如何使用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 新闻资讯 的设计与实现
一.项目介绍 本系统分为 后端 和 小程序端 后端:点击登录按钮 设置个人中心、 管理员账号数据维护、 基础数据维护、 短视频信息维护(包括查看短视频留言、短视频收藏)、 论坛维护(增删改查帖子信息,包括查…...
Qwen3.5-2B算法学习伴侣:动态图解与代码实现一键生成
Qwen3.5-2B算法学习伴侣:动态图解与代码实现一键生成 1. 算法学习的新方式 算法学习一直是开发者成长路上的必经之路,但传统的学习方式往往面临几个痛点:文字解释太抽象、静态图示不够直观、代码实现需要反复调试。Qwen3.5-2B的出现&#x…...
Altium Designer 22 实战:用这个隐藏技巧,为DIP插件焊盘穿上‘防烫服’
Altium Designer 22实战:用丝印层为DIP焊盘打造双重防护 手工焊接DIP插件时,烙铁温度过高或操作不当导致绿油层损坏,进而引发短路问题,是硬件工程师经常遇到的痛点。特别是在生产线上,工人为了效率往往将烙铁温度调至最…...
告别联网烦恼:uv离线安装科学计算包的3种实战姿势(NumPy/TensorFlow实测)
数据科学家必备:三种高效离线安装Python科学计算包的终极方案 实验室的服务器突然断网了,而你的TensorFlow模型训练正进行到关键时刻——这种场景对数据科学家来说简直是噩梦。别担心,离线安装Python包并非无解难题。本文将带你掌握三种经过实…...
unrpa架构深度解析:RPA文件格式逆向工程与高性能解包技术实现
unrpa架构深度解析:RPA文件格式逆向工程与高性能解包技术实现 【免费下载链接】unrpa A program to extract files from the RPA archive format. 项目地址: https://gitcode.com/gh_mirrors/un/unrpa 在游戏开发与逆向工程领域,RPA(R…...
Bottlerocket容器健康检查终极指南:自定义探针与系统指标深度集成
Bottlerocket容器健康检查终极指南:自定义探针与系统指标深度集成 【免费下载链接】bottlerocket An operating system designed for hosting containers 项目地址: https://gitcode.com/gh_mirrors/bo/bottlerocket Bottlerocket是一款专为容器化工作负载设…...
Phi-4-mini-reasoning真实作品:微分方程求解+物理意义解释双模态输出
Phi-4-mini-reasoning真实作品:微分方程求解物理意义解释双模态输出 1. 模型简介 Phi-4-mini-reasoning是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它经过专门微调以提升数学…...
如何突破游戏外设限制?ViGEmBus虚拟手柄驱动技术全攻略
如何突破游戏外设限制?ViGEmBus虚拟手柄驱动技术全攻略 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在游戏世界中,硬件兼容性问题…...
8GB显存跑大模型?Qwen3-0.6B-FP8部署与效果实测全记录
8GB显存跑大模型?Qwen3-0.6B-FP8部署与效果实测全记录 1. 引言:轻量级大模型的新选择 在AI模型日益庞大的今天,如何在有限硬件资源上运行高效的大语言模型成为开发者关注的焦点。Qwen3-0.6B-FP8作为阿里达摩院最新推出的轻量级模型࿰…...
Z-Image-GGUF助力开源社区:为GitHub项目自动生成演示图
Z-Image-GGUF助力开源社区:为GitHub项目自动生成演示图 你有没有过这样的经历?精心维护一个开源项目,代码写得漂亮,文档也写得详细,但项目主页总感觉少了点什么。点开别人的项目,有精美的架构图、清晰的流…...
Jimeng LoRA动态热切换实战:避免显存爆炸,轻松测试多训练阶段模型
Jimeng LoRA动态热切换实战:避免显存爆炸,轻松测试多训练阶段模型 1. 项目背景与核心价值 你是否遇到过这样的困扰:在测试不同训练阶段的LoRA模型时,每次切换版本都需要重新加载底座模型,不仅耗时耗力,还…...
