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


}
相关推荐
想搞艺术的程序员2 分钟前
Go map 核心黑魔法:tophash 标记位的极致复用与性能跃升
golang·源码分析·性能
呆萌很3 小时前
【GO】函数创建和使用
golang
echome8885 小时前
Go 语言并发编程:Goroutine 与 Channel 实战指南
后端·golang
风向决定发型丶6 小时前
Java 线程池 vs Go GMP
java·开发语言·golang
伐尘7 小时前
【图形学】CS:GO 的 “Uber 着色器” 是啥?
开发语言·golang·着色器
FJW0208147 小时前
什么是Go语言?云原生为什么要学Go?
开发语言·云原生·golang
人间打气筒(Ada)7 小时前
「码动四季·开源同行」golang:负载均衡如何提高系统可用性?
算法·golang·开源·go·负载均衡·负载均衡算法
牛奔18 小时前
Go + Vue 接入行为验证码完整指南
go
糖炒栗子032620 小时前
Go 语言环境搭建与版本管理指南 (2026)
开发语言·后端·golang
今天也要学习吖20 小时前
开源AI智能客服系统AI-CS
人工智能·ui·chatgpt·golang·开源·gemini·智能客服系统