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


}
相关推荐
资深web全栈开发5 小时前
如何正确使用缓存:常见陷阱与最佳实践
redis·缓存·golang
枫子有风6 小时前
Go语言流程控制
android·java·golang
唐僧洗头爱飘柔95278 小时前
【GORM(3)】Go的跨时代ORM框架!—— 数据库连接、配置参数;本文从0开始教会如何配置GORM的数据库
开发语言·数据库·后端·golang·gorm·orm框架·dsn
Jonathan Star8 小时前
在 Go 语言中,模板字符串
开发语言·后端·golang
奔跑吧邓邓子10 小时前
【C语言实战(79)】深入C语言单元测试:基于CUnit框架的实战指南
c语言·单元测试·实战·cunit
光头闪亮亮14 小时前
电子发票解析工具-golang服务端开发案例详解
go
想搞艺术的程序员14 小时前
Go Channel 深度指南:规范、避坑与开源实践
golang
巴塞罗那的风14 小时前
Eino框架快速搭建出行agent(二)引入12306 mcp
人工智能·golang·mcp
周杰伦_Jay15 小时前
【Go微服务框架深度对比】Kratos、Go-Zero、Go-Micro、GoFrame、Sponge五大框架
开发语言·微服务·golang
啟明起鸣16 小时前
【Go 与云原生】先从 Go 对与云原生的依赖关系讲起,再讲讲 一个简单的 Go 项目热热身
开发语言·云原生·golang