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


}
相关推荐
ttwuai2 小时前
Go开源后台管理系统推荐:怎么按技术栈和边界比较4个官方仓库?
golang·gin
alsmile2 小时前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
codeejun3 小时前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
茉莉玫瑰花茶5 小时前
GO [ 变量 ]
go
Achou.Wang5 小时前
k8s中nginx worker process自动设置
后端·golang
lpfasd1235 小时前
展厅中控总体架构
go·串口·中控
慧都小项7 小时前
Python 跨文件重构怎么验证?PyCharm 用法查找、重构预览与测试流程
python·重构·pycharm·单元测试
茉莉玫瑰花茶9 小时前
GO [ 条件/循环控制 ]
go
茉莉玫瑰花茶9 小时前
GO [ 数据类型 ]
go
云浪1 天前
Go Context 到底是什么?
后端·go