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


}
相关推荐
审判长烧鸡5 小时前
Go命名规则【2】全场景命名避坑指南
go·命名规则·ai问答
anzhxu6 小时前
Go基础之环境搭建
开发语言·后端·golang
ILYT NCTR9 小时前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
众少成多积小致巨11 小时前
Soong构建入门
android·go·编译器
ServBay12 小时前
2026年 Go 开发中没有它就不行的 10 个库
后端·go
叹一曲当时只道是寻常17 小时前
memos-cli 安装与使用教程:将 Memos 笔记同步到本地并支持 AI 语义搜索
人工智能·笔记·golang
PFinal社区_南丞18 小时前
Go 官方终于出手了!gopls 内置 MCP,AI 编程效率狂飙 88%
后端·go
geovindu18 小时前
go: Facade Pattern
设计模式·golang·外观模式
小众AI18 小时前
Go 多账户 WebDAV 服务实现
golang
念何架构之路19 小时前
图解defer
开发语言·后端·golang