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


}
相关推荐
喵个咪1 小时前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:基于 GORM 从零实现新服务
后端·go·orm
用户095367515832 小时前
Go -- 模板方法模式 (Template Method)
go
喵个咪3 小时前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:基于 Ent 从零实现新服务
后端·go·orm
卜锦元5 小时前
Golang中make()和new()的区别与作用?
开发语言·后端·golang
海上彼尚6 小时前
Go之路 - 3.go的数据类型与转换
开发语言·后端·golang
龙门吹雪6 小时前
Go 语言包初始化顺序详解
golang·init·初始化顺序·依赖包·导入包
海上彼尚6 小时前
Go之路 - 4.go的集合[完整版]
开发语言·后端·golang
阿里巴啦7 小时前
从零搭建移动端数字人生成应用:React + Go + D‑ID 实战
react.js·golang·状态模式·数字人·did·ai移动端数字人
资深web全栈开发9 小时前
Go语言从1.18到1.25版本功能更新详解
开发语言·后端·golang
周杰伦_Jay10 小时前
【字节开源Golang框架Eino】技术详解:架构原理+实战落地+避坑指南(附代码)
架构·golang·开源