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


}
相关推荐
KeyonY10 小时前
车联网MQTT 消息处理的高并发优化
mqtt·golang·车联网
Go_error14 小时前
Go database/sql 基于临时 channel 传递连接
后端·go
Go_error14 小时前
Go 循环栅栏
后端·go
QH1392923188015 小时前
Rohde & Schwarz FSWX3044 FSWX3026信号与频谱分析仪
网络·功能测试·单元测试·集成测试·模块测试
月屯16 小时前
grpc-api模块化依赖
golang
wecode6617 小时前
一个可以复现整个日志系统演进过程的工程级 specification
go·日志系统
瑶山18 小时前
IDEA 配置Go语言开发环境、GOPATH传统 Go 项目导入
java·golang·intellij-idea
会编程的土豆18 小时前
【go】 Go语言中的 defer:从入门到理解底层机制(讲透版)
开发语言·后端·golang
初心未改HD20 小时前
Go语言Slice切片底层原理深度解析
开发语言·golang
世界尽头与你20 小时前
Go 语言高级函数特性
开发语言·golang