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

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

完整判断代码如下:

Go 复制代码
func init() {

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


}
相关推荐
源图客11 小时前
Go语言goland代码编辑与调试
开发语言·后端·golang
金融小白数据分析之路12 小时前
go 查询 sql go-sqlite3 版本
sql·golang·sqlite
王中阳Go13 小时前
用Go写AI Agent:我从实战图书里总结了这些核心逻辑
后端·go·ai编程
sweetheart7-71 天前
go/golang 入门学习笔记(Java/Python/C++转Go快速上手)
笔记·学习·golang·go语言
老神在在0011 天前
测试方法与使用场景
单元测试·测试
Vect__2 天前
C++无痛转go第一天,从hello world到切片
开发语言·c++·golang
扉页的墨2 天前
Go 错误处理之道:别再到处 return fmt.Errorf 了,你的代码正在失控
go
kyriewen112 天前
WebAssembly:前端界的“外挂”,让C++代码在浏览器里跑起来
开发语言·前端·javascript·c++·单元测试·ecmascript
止语Lab2 天前
你写的Go代码,编译器能"看懂"多少
go
研究点啥好呢2 天前
字节跳动Go后端开发工程师面试题精选:10道高频考题+答案解析
面试·golang·php·求职招聘