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


}
相关推荐
川白39 分钟前
用 Go 写多线程粒子动画:踩坑终端显示与跨平台编译【含 Windows Terminal 配置 + Go 交叉编译脚本】
go
IMPYLH11 小时前
Lua 的 collectgarbage 函数
开发语言·笔记·junit·单元测试·lua
Tony Bai12 小时前
Go 在 Web3 的统治力:2025 年架构与生态综述
开发语言·后端·架构·golang·web3
q***062913 小时前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
zhuyasen14 小时前
Go 实战:在 Gin 基础上上构建一个生产级的动态反向代理
nginx·go·gin
Wenhao.16 小时前
LeetCode Hot100 每日温度
数据结构·算法·leetcode·golang
Tsblns18 小时前
从Go http.HandleFunc()函数 引出"函数到接口"的适配思想
go
未来之窗软件服务19 小时前
幽冥大陆(二十二)dark语言智慧农业电子秤读取——东方仙盟炼气期
开发语言·windows·golang·东方仙盟·东方仙盟sdk
IMPYLH19 小时前
Lua 的 assert 函数
开发语言·笔记·junit·单元测试·lua
Ryan ZX1 天前
【Go语言基础】计算机基础知识
开发语言·后端·golang