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


}
相关推荐
谢亮_vipxieliang3 小时前
Go map与结构体的正确使用
开发语言·golang·哈希算法
microrain3 小时前
先应答,再入库:SagooIoT 接入 GB/T 32960 的四层宿主改造
物联网·golang·开源·sagooiot
谢亮_vipxieliang12 小时前
Go defer、panic与recover核心知识点
开发语言·后端·golang
谢亮_vipxieliang13 小时前
Go基础数据类型全解
开发语言·后端·golang
谢亮_vipxieliang14 小时前
Go 接口设计原则核心知识点
开发语言·ios·golang
谢亮_vipxieliang14 小时前
Go 结构体与方法集核心知识点
java·开发语言·golang
microrain1 天前
同一个寄存器,四种读法:SagooIoT Modbus 驱动的字节序、宽度与功能码
物联网·golang·开源·sagooiot
JWASX1 天前
Java 转 go 学习 - 并发编程(2)
学习·golang
我的div丢了肿么办1 天前
go语言中管道 channel的使用
后端·go
ttwuai1 天前
Go开源后台管理系统推荐:README、源码和License应该怎么验
开发语言·golang·开源