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 // 当前运行当前测试,直接返回
	}
	    
   


}
相关推荐
利威尔xu1 小时前
Go map 底层崩溃:3 个 goroutine 并发写同一张 map,fatal error 崩掉整个服务
golang·源码·map·并发·后端开发
码上踩坑17 小时前
Claude Code 会话攒太多,我用 Go 写了个本地管理台
go
孔令飞1 天前
企业智能化升级:智能体平台设计和实现
云原生·go·ai编程
vipxieliang1 天前
Go GC 性能优化实践:从 GOGC、GOMEMLIMIT 到分配优化
后端·go
利威尔xu1 天前
2026-11-08-Go-defer-panic-recover面试
面试·golang
JWASX2 天前
【Go】map 源码解析 - group
后端·golang·map·源码分析
小满zs2 天前
Go语言第十八章(架构设计)
后端·go
联犀3 天前
纯 Go 的 CAD 开源库 go-cad:直接解析 DWG/DXF,现在也能导出 PDF
开发语言·golang·pdf
FungLeo3 天前
成为全栈·Go 后端篇·三轮代码审阅之后:把可读性和证据做成工程规则
golang·go·ast·静态检查·成为全栈·代码审阅
努力努力再努力wz3 天前
【Lua进阶系列】Lua 调试机制详解:从虚拟机调用栈、错误传播到 debug 库
junit·单元测试·lua