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 小时前
【JUnit实战3_12】第七章:用 Stub 模拟进行粗粒度测试
测试工具·junit·单元测试·junit5·stub模拟·模拟技术·stub 桩
九江Mgx7 小时前
Go语言实现的简易远程传屏工具:让你的屏幕「飞」起来
golang·截图·传屏
九江Mgx10 小时前
自由通讯的魔法:Go从零实现UDP/P2P 聊天工具
golang·udp·p2p
ErizJ10 小时前
IM|im-service
golang·kafka·go·im·心跳检测
光头闪亮亮12 小时前
curl库应用-c++客户端示例及golang服务端应用示例
c++·go
-芒果酱-12 小时前
对中兴光猫zteOnu.exe项目的简单分析(提供下载地址)
go
程序员二黑13 小时前
状态迁移与场景法:搞定复杂业务流测试的利器
面试·单元测试·测试
绛洞花主敏明14 小时前
Gorm(六)错误处理 & RowsAffected
golang
kgduu19 小时前
go-ethereum core之交易索引txIndexer
服务器·数据库·golang
ALex_zry21 小时前
构建通用并发下载工具:用Golang重构wget脚本的实践分享
开发语言·重构·golang