当前位置: 首页 > news >正文

如何使用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线程(例如,一个后台线程或者网络请求线程&#xff0…...

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请求统一配置了超时时间&#xff0c;单独接口请求时重设超时时间 根据官网推荐&#xff1a;axios中文文档 1.配置的优先顺序 配置会以一个优先顺序进行合并。这个顺序是&#xff1a;在 lib/defaults.js 找到的库的默认值&#xff0c;然后是实例的 defaults 属性&…...

leetcode-盛水最多的容器-109

题目要求 思路 1.正常用双循环外循环i从0开始&#xff0c;内循环从height.size()-1开始去计算每一个值是可以的&#xff0c;但是因为数据量太大&#xff0c;会超时。 2.考虑到超时&#xff0c;需要优化一些&#xff0c;比如第一个选下标1&#xff0c;第二个选下标3和第一个选下…...

VMware ESXi中安装Proxmox VE

0、巴拉巴拉 前几天某行业HW&#xff0c;闲暇的时候几个技术人员聊天&#xff0c;臭味相投的聊到自己玩的东西。有个玩家说家里用工作站安装Proxmox VE&#xff0c;然后在上面安装软路由、安装NAS。我以前一直想玩玩&#xff0c;没有付诸行动&#xff0c;所以也想弄个集中的方案…...

Java(其十二)--集合·初级

ArrayList集合 集合有很多种&#xff0c;ArrayList 是最常用的一种&#xff0c;集合的作用相当于C中的STL 最显著的特点就是&#xff1a;自动扩容。 一般定义式 ArrayList list new ArrayList(); //该 list 是可以储存各种类型的数据的&#xff0c;要想约束储存的数据&#x…...

疯狂“造人”!美国两党共推新法案,5年培养100万AI及量子人才

当前&#xff0c;全球量子计算人才的短缺已成为制约该领域快速发展的关键瓶颈。 为了解决量子计算人才短缺的问题&#xff0c;各国政府和企业采取了积极措施&#xff0c;加大了对量子教育和培训的投入。根据美国参议院官网消息&#xff0c;2024年5月23日&#xff0c;美国两党议…...

Python 文件操作指南:使用 open 和 with open 实现高效读写

&#x1f340; 前言 博客地址&#xff1a; CSDN&#xff1a;https://blog.csdn.net/powerbiubiu &#x1f44b; 简介 本系列文章主要分享文件操作&#xff0c;了解如何使用 Python 进行文件的读写操作&#xff0c;介绍常见文件格式的读取和写入方法&#xff0c;包括TXT、 CS…...

FasterNet代码阅读

FasterNet 类参数初始化 将图像切分为非重叠的图像块 PatchEmbed 类 将图像分解为非重叠的图像块有以下几个好处&#xff1a; 1. 缩小计算量&#xff1a;对于大尺寸的图像&#xff0c;直接对整个图像进行处理可能会导致计算和内存消耗过大。将图像切分为小块可以降低计算量…...

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 新闻资讯 的设计与实现

一.项目介绍 本系统分为 后端 和 小程序端 后端&#xff1a;点击登录按钮 设置个人中心、 管理员账号数据维护、 基础数据维护、 短视频信息维护(包括查看短视频留言、短视频收藏)、 论坛维护(增删改查帖子信息&#xff0c;包括查…...

Unity离线语音识别插件:高精度低延迟的本地ASR解决方案

1. 这不是“又一个语音SDK”——它解决的是Unity开发者真正卡脖子的三个痛点我在2022年接手一个医疗陪护类AR应用时&#xff0c;客户明确要求&#xff1a;“所有语音指令必须在本地处理&#xff0c;不能上传云端&#xff0c;且响应延迟不能超过300ms”。当时团队试了七种方案&a…...

Unity发行版调试:DnSpy逆向分析实战指南

1. 这不是“破解”&#xff0c;而是开发者该懂的逆向基本功Unity游戏发版后&#xff0c;你有没有遇到过这样的情况&#xff1a;线上玩家反馈某个功能异常&#xff0c;但本地环境完全复现不了&#xff1b;或者第三方SDK在打包后行为诡异&#xff0c;日志里连调用栈都截断了&…...

别再死记公式了!用Python和NumPy直观理解向量模长与矩阵范数

用Python和NumPy直观理解向量模长与矩阵范数 线性代数中的向量模长和矩阵范数常被视为抽象的数学符号&#xff0c;但它们在机器学习、图像处理和科学计算中扮演着核心角色。本文将用Python代码将这些概念可视化&#xff0c;让你在交互式实践中建立直觉理解。 1. 向量模长&#…...

5G FWA智能终端技术解析:从核心原理到部署实践

1. 项目背景与行业意义最近在圈子里看到一则消息&#xff0c;美格智能的5G FWA智能终端产品成功中标了中国联通的招标项目。这消息乍一看像是普通的商业新闻&#xff0c;但对于我们这些常年泡在通信和物联网领域的人来说&#xff0c;这背后其实藏着不少值得琢磨的门道。它不仅仅…...

一句指令就能完成跨系统操作?——2026企业级智能体技术路径深度拆解

站在2026年的时间节点回望&#xff0c;企业数字化转型已从“流程驱动”全面转向“智能体驱动”。过去&#xff0c;跨系统操作往往意味着繁杂的API对接或编写脆弱的自动化脚本。而今&#xff0c;以实在智能推出的实在Agent为代表的方案&#xff0c;实现了“一句指令&#xff0c;…...

如何在Windows 10/11上完美使用PS3手柄:DsHidMini虚拟HID驱动终极指南

如何在Windows 10/11上完美使用PS3手柄&#xff1a;DsHidMini虚拟HID驱动终极指南 【免费下载链接】DsHidMini Virtual HID Mini-user-mode-driver for Sony DualShock 3 Controllers 项目地址: https://gitcode.com/gh_mirrors/ds/DsHidMini 你是否还在为Windows系统无…...

Burp Suite渗透测试工作流:从环境搭建到报告生成

1. 这不是“学个工具”&#xff0c;而是一套可复用的渗透工作流很多人点开“Burp Suite 入门”类教程&#xff0c;心里想的是&#xff1a;“装个插件、抓个包、改个参数&#xff0c;不就完事了&#xff1f;”——结果三天后连 repeater 怎么发 POST 请求都得翻笔记。我带过二十…...

避坑指南:用STM32F4的HAL库驱动L298N和TB6612,CubeMX配置有哪些关键点不同?

STM32F4电机驱动实战&#xff1a;L298N与TB6612的CubeMX配置差异全解析 在机器人底盘或智能小车开发中&#xff0c;电机驱动模块的选择直接影响着系统的响应速度、能耗效率和整体稳定性。作为两种经典的有刷直流电机驱动方案&#xff0c;L298N和TB6612在STM32F4开发中各有拥趸。…...

ESP-IDF+vscode开发ESP32第十三讲——NVS

目录 一、NVS梳理 1.1 分区 (Partition)&#xff1a;NVS 的专属“仓库” 1.2 页面 (Page)&#xff1a;仓库里的“货架” 1.3 条目 (Entry)&#xff1a;货架上的“最小存储格” 1.4 键值对 (Key-Value Pair)&#xff1a;实际存放的“货物” 1.5 命名空间 (Namespace)&…...

机器人路径规划:安全性与最优性的平衡算法解析

1. 路径规划中的安全性与最优性平衡难题在机器人导航领域&#xff0c;路径规划算法始终面临一个核心矛盾&#xff1a;如何同时保证路径的最优性和安全性。传统A*算法追求最短路径&#xff0c;却常常让机器人贴着障碍物边缘行走&#xff1b;而基于Voronoi图的规划方法虽然能最大…...