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


}
相关推荐
jieyucx27 分钟前
Go语言通透教程:结构体定义与方法
服务器·数据库·golang·结构体
念何架构之路32 分钟前
GoFrame类型转换详解
golang
m0_502724954 小时前
golang 、java、c++、javascript 语言switch case异同
java·javascript·c++·golang
喵个咪5 小时前
Kratos 生态双定时器中间件:高精度 hptimer 与标准 cron 选型与实践
后端·微服务·go
用户398346161205 小时前
Go-Spring 实战第 4 课 —— 配置校验:使用 expr 标签拦截非法配置
spring·go
传说之后5 小时前
Go Context 完全指南:树状级联、超时控制、值传递与最佳实践
后端·go
jieyucx5 小时前
Go 语言进阶:结构体指针、new 关键字与匿名结构体/成员详解
开发语言·后端·golang·结构体
用户398346161205 小时前
Go-Spring 实战第 2 课 —— 配置绑定:Properties 映射到 Go 类型
spring·go
用户398346161205 小时前
Go-Spring 实战第 3 课 —— 复杂类型的配置绑定:Duration、Time、Slice、Map
spring·go
赛特·亮6 小时前
利用WTAPI(WeChatapi)-robot-go 项目解析与实战指南
微信·面试·golang