golang 如何判断当前是否是运行单元测试?

我们在go的模块化开发的时候,运行模块里面的单元测试时,当前整个模块的 init 函数都会被执行,在某些情况下我们运行独立的单元测试并不需要执行其他文件里面的init函数,这时就需要判断当前是否是在运行单元测试,判断方式很简单,只需要判断当前运行参数是否是以-test开始即可,if len(os.Args) > 1 && strings.HasPrefix(os.Args1, "-test") { } 。

完整判断代码如下:

Go 复制代码
func init() {

	// 如果是运行的单元测试,则跳过viper加载配置文件 避免找不到配置文件的异常
	// 单元测试 的情况下不加载viper配置
	if len(os.Args) > 1 && strings.HasPrefix(os.Args[1], "-test") {
		return // 当前运行当前测试,直接返回
	}
	    
   


}
相关推荐
codeejun9 小时前
每日一Go-73、云原生成本优化 —— 资源限制 & 指标驱动扩容
开发语言·云原生·golang
用户7438356135113 小时前
无锁 Hub:我的 IM 系统为什么用 channel 而不是 mutex 管理在线用户
go
小小龙学IT17 小时前
Go语言后端开发入门指南
开发语言·后端·golang
不会就选b18 小时前
数据结构之如何让opencode帮我们完成单元测试
单元测试
basketball61618 小时前
Go 语言从入门到进阶:6. 一文彻底吃透结构体(Struct)
开发语言·unity·golang
FFZero11 天前
[mpv脚本系统] (二) Lua三层闭包实现自动资源管理
junit·单元测试·lua
木雷坞1 天前
Go 项目实战:用 MLiev IAM 落地企业认证中心
后端·golang·认证
吴佳浩2 天前
Go史上最大“打脸”现场来了:泛型方法终于实现了
后端·go
知彼解己2 天前
LLM-based Planning:从后端视角理解 Agent 规划层
后端·golang·ai编程