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


}
相关推荐
圣殿骑士-Khtangc6 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
xzlAwin11 小时前
Win10安装Go语言多版本管理器g工具
开发语言·golang
FfHUCisI15 小时前
Golang RESTful API 设计原则
开发语言·golang·restful
神奇小梵15 小时前
《javaweb基础》后端篇————maven补充(用maven单元测试,maven常见问题)
单元测试·maven
newerp16 小时前
Go net/http 标准库基础
后端·程序员·go
26519405112648017 小时前
01-整体架构与高可用
go
大可-18 小时前
Go Air 热重载安装配置指南
开发语言·后端·golang
Zenova EdgeOS19 小时前
工业边缘 SDK 设计实战:从 API 到 Python/Go 多语言工程落地
python·golang·php
程序员爱钓鱼19 小时前
Go if 判断详解
前端·后端·go
名字还没想好☜1 天前
Go 的 unsafe.Pointer 实战:零拷贝 []byte↔string 转换与三条铁律
开发语言·后端·golang·go·unsafe