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


}
相关推荐
HashFlag1 天前
单元测试(go)
golang·单元测试
littleschemer1 天前
go结构体扫描
游戏·go·解析·struct
TDengine (老段)1 天前
TDengine Go 连接器入门指南
大数据·数据库·物联网·golang·时序数据库·tdengine·涛思数据
YGGP1 天前
【Golang】LeetCode 206. 反转链表
leetcode·链表·golang
YGGP1 天前
【Golang】LeetCode 142. 环状链表 II
leetcode·链表·golang
YGGP1 天前
【Golang】LeetCode 160. 相交链表
leetcode·链表·golang
YGGP1 天前
【Golang】LeetCode 234. 回文链表
leetcode·链表·golang
Tony Bai2 天前
Go 考古:Go 官方如何决定支持你的 CPU 和 OS?
开发语言·后端·golang
技术小泽2 天前
java转go语言入门基础篇(二)
java·golang
卓码软件测评2 天前
第三方CNAS软件测试机构【Apifox Mock脚本进阶_使用JavaScript自定义响应逻辑】
测试工具·ci/cd·性能优化·单元测试·测试用例