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


}
相关推荐
lierenvip18 小时前
Spring Boot 整合 log4j2 日志配置教程
spring boot·单元测试·log4j
ruxingli19 小时前
GoLang channel管道
开发语言·后端·golang
_DCG_19 小时前
go第一个工程安装过程与问题汇总
开发语言·后端·golang
冰糖拌面20 小时前
多线程模型
golang
武超杰20 小时前
SpringBoot 进阶实战:异常处理、单元测试、多环境、日志配置全解析
spring boot·单元测试·log4j
onlywhz20 小时前
GO 快速升级Go版本
开发语言·redis·golang
Samson Bruce21 小时前
【单元测试】
单元测试·log4j
童话ing21 小时前
【Golang】sync.Map底层原理解析
开发语言·后端·golang
小旭952721 小时前
SpringBoot 技能实战:异常处理、单元测试、多环境配置、日志
spring boot·后端·单元测试
ん贤21 小时前
AI 大模型落地系列|Eino 组件核心篇:文档进入 RAG 之前,Loader 和 Parser 到底各管什么
人工智能·ai·golang·eino