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


}
相关推荐
Grassto2 小时前
11 Go Module 缓存机制详解
开发语言·缓存·golang·go·go module
福大大架构师每日一题3 小时前
ollama v0.15.2发布:新增Clawdbot集成指令,全面支持Ollama模型启动!
golang·ollama
参.商.5 小时前
【Day25】26.删除有序数组中的重复项 80.删除有序数组中的重复项II
leetcode·golang
小高Baby@5 小时前
ShouldBind、ShouldBindJson、ShouldBindQuery的区别
后端·golang
moxiaoran57537 小时前
Go语言的文件操作
开发语言·后端·golang
赴前尘7 小时前
记一次golang进程执行卡住的问题排查
开发语言·后端·golang
独处东汉8 小时前
freertos开发空气检测仪之串口驱动与单元测试实践
单元测试·log4j
暴躁小师兄数据学院9 小时前
【WEB3.0零基础转行笔记】Golang编程篇-第3讲:GO语言中的运算符
笔记·golang·web3
小二·9 小时前
Go 语言系统编程与云原生开发实战(第9篇)安全加固实战:认证授权 × 数据加密 × 安全审计(生产级落地)
安全·云原生·golang
Warren989 小时前
Allure 常用装饰器:实战用法 + 最佳实践(接口自动化)
运维·服务器·git·python·单元测试·自动化·pytest