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


}
相关推荐
平凡但不平庸的码农1 小时前
Go context 包详解
开发语言·后端·golang
QH139292318801 小时前
罗德与施瓦茨 FSW26 FSW43 FSW50高端信号分析仪
网络·功能测试·单元测试·集成测试·模块测试
焗猪扒饭2 小时前
极简案列入门golang依赖注入工具wire
后端·go
~|Bernard|4 小时前
三,go语言中channel的底层原理
开发语言·后端·golang
且去填词5 小时前
Go并发模式进阶:从Worker Pool到可取消任务调度器
数据库·oracle·golang
平凡但不平庸的码农5 小时前
Go 语言:值传递 vs 指针传递
开发语言·后端·golang
测试员周周5 小时前
【AI测试数据及模型质量2】换一批测试数据,模型得分差20%——AI评测翻车的根子,90%在数据质量
人工智能·python·ui·单元测试·测试用例·集成测试·pytest
测试员周周13 小时前
【AI测试智能体】为什么传统测试方法对智能体失效?
开发语言·人工智能·python·功能测试·测试工具·单元测试·测试用例
平凡但不平庸的码农13 小时前
Go Slice 详解
算法·golang
讲不出 再见20 小时前
go语言-指针
go·指针