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


}
相关推荐
一只理智恩7 小时前
AI 实战应用:从“搜索式问答“到“理解式助教“
人工智能·python·语言模型·golang
呆萌很12 小时前
Go语言变量定义指南:从入门到精通
golang
天真小巫16 小时前
2026.2.20总结(认识自我)
单元测试·压力测试
golang学习记17 小时前
Go 语言中和类型(Sum Types)的创新实现方案
开发语言·golang
呆萌很17 小时前
Go语言输入输出操作指南
golang
追随者永远是胜利者17 小时前
(LeetCode-Hot100)647. 回文子串
java·算法·leetcode·职场和发展·go
追随者永远是胜利者18 小时前
(LeetCode-Hot100)461. 汉明距离
java·算法·leetcode·职场和发展·go
Andy Dennis19 小时前
Java&Go 内存管理
java·jvm·go
fullstackjam2 天前
Go CLI 进度条:为什么我放弃 Bubble Tea 裸写了 ANSI
go