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


}
相关推荐
geovindu8 小时前
go: Chain of Responsibility Pattern
开发语言·设计模式·golang·责任链模式
小熊吃保安20 小时前
Excel下载变成了ZIP?Docker 容器里的 Content-Type 离奇失踪案
docker·go
seabirdssss20 小时前
以登录功能理解单元测试、集成测试、系统测试和用户测试
单元测试·集成测试
Coding君20 小时前
每日一Go-58、NATS 如何做到高可用?NATS集群部署方式来了
go
Tomhex21 小时前
Go内存逃逸优化技巧
golang
会编程的土豆21 小时前
Go语言零基础入门:从0到能写程序(超详细版)
开发语言·后端·golang
初心未改HD1 天前
Go语言变量与数据类型完全指南
开发语言·golang
初心未改HD1 天前
Go语言环境搭建与第一个程序详解
开发语言·后端·golang
keep intensify1 天前
MIT 6.824 lab3B/C
分布式·后端·golang
琪露诺大湿1 天前
VeloQueue-测试报告
java·开发语言·消息队列·单元测试·项目·测试报告