golang 如何判断当前是否是运行单元测试?

我们在go的模块化开发的时候,运行模块里面的单元测试时,当前整个模块的 init 函数都会被执行,在某些情况下我们运行独立的单元测试并不需要执行其他文件里面的init函数,这时就需要判断当前是否是在运行单元测试,判断方式很简单,只需要判断当前运行参数是否是以-test开始即可,if len(os.Args) > 1 && strings.HasPrefix(os.Args1, "-test") { } 。

完整判断代码如下:

Go 复制代码
func init() {

	// 如果是运行的单元测试,则跳过viper加载配置文件 避免找不到配置文件的异常
	// 单元测试 的情况下不加载viper配置
	if len(os.Args) > 1 && strings.HasPrefix(os.Args[1], "-test") {
		return // 当前运行当前测试,直接返回
	}
	    
   


}
相关推荐
qq_452396233 小时前
第五篇:《接口与错误处理:Go 的哲学》
开发语言·后端·golang
布朗克1685 小时前
Go 入门到精通-29-测试与基准
开发语言·后端·golang·测试与基准
fcu3dx9 小时前
Go + PostgreSQL 餐饮SaaS后端架构:从单体到多租户的实战重构
go
止语Lab11 小时前
从 PHP 到 Go:真正迁移的是复杂度的归属
android·golang·php
程序员爱钓鱼11 小时前
Go 开发环境安装(Windows、macOS、Linux)
后端·面试·go
灯澜忆梦20 小时前
GO_并发编程---定时器
开发语言·后端·golang
Wang's Blog1 天前
Go-Zero项目开发10: 微服务治理中心实现原理分析
开发语言·微服务·golang
qq_452396231 天前
第二篇:《Go 开发环境搭建:SDK、IDE、Module 与 Hello World》
开发语言·ide·golang
测试修炼手册1 天前
[测试技术] TestNG 入门与实战:分组、数据驱动与并行执行
junit·单元测试·log4j
FellAveal1 天前
【Go语言入门学习笔记】Part13.结构体与接口
笔记·学习·golang