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


}
相关推荐
IMPYLH1 天前
Lua 的 rawset 函数
开发语言·笔记·单元测试·lua
霍格沃兹测试开发学社1 天前
被裁后,我如何实现0到3份大厂Offer的逆袭?(内附面试真题)
人工智能·selenium·react.js·面试·职场和发展·单元测试·压力测试
8***29311 天前
Go环境搭建(vscode调试)
开发语言·vscode·golang
n***63271 天前
Spring Boot 整合 log4j2 日志配置教程
spring boot·单元测试·log4j
y***03171 天前
Go基础之环境搭建
开发语言·后端·golang
武子康1 天前
AI研究-133 Java vs Kotlin/Go/Rust/Python/Node:2025 详细对比分析 定位与取舍指南
java·javascript·python·golang·rust·kotlin·node
apocelipes1 天前
Linux的binfmt_misc机制
linux·c语言·c++·python·golang·linux编程·开发工具和环境
u***28471 天前
golang debug调试
开发语言·后端·golang
T0uken1 天前
Go + Node.js 全栈单文件部署方案
golang·node.js·状态模式