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

ops/2025/1/16 3:53:17/

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

完整判断代码如下:

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


http://www.ppmy.cn/ops/53472.html

相关文章

010、GPT-5:AI新纪元的曙光与挑战

目录 GPT-5:AI新纪元的曙光与挑战 1.革命性的个人助理 2.教育领域的变革 3.医疗健康的新篇章 4.科研创新的加速器 5.创意产业的新灵感 6.商业与经济的智能化 7.社会治理的新工具 8.环境保护与可持续发展 9.伦理与社会影响 学术视角:AI发展的前…

分享一些面试经验

计算机类面试准备指南 目录 简介简历准备 个人信息教育背景工作经历项目经验技能清单证书与奖励 技术知识复习 编程语言数据结构与算法计算机基础知识系统设计 面试题型 行为面试技术面试在线编程测试系统设计面试 面试技巧 自我介绍回答技巧沟通技巧常见问题应对 模拟面试 单…

SpringBoot AOP + Redis延时双删功能

延时双删功能就不过多解释了,场景就是,为了少关联表,将数据的id 跟name存到redis中,但是为了解决数据一致性的问题,即一旦name修改了,如何更新redis,写了如下代码,部分参考了其他人的…

shell:处理命令行参数 获取用户输入

1. 命令行参数 1.1 位置参数 bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的 所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:$0是程序名,$1是第 一个参数,$2是第二个参数,依…

【面试干货】与的区别:位运算符与逻辑运算符的深入探讨

【面试干货】&与&&的区别:位运算符与逻辑运算符的深入探讨 1、&:位运算符2、&&:逻辑运算符3、&与&&的区别 💖The Begin💖点点关注,收藏不迷路💖 & 和 …

MySQL的高级查询语句

高级查询语句 前言基本查询指定指字段进行查看对字段进行去重查看where条件查询逻辑关系的增加查询逻辑关系的减少查询查询取值列表中的数据between的方式like的方式 排序方式进行查询 运用函数查询数据库中常用数学的函数聚合函数求平均值统计非空值查询“最”值求和 字符串函…

免杀笔记 ---> C语言

这次的更新可能有点慢,因为这段时间也比较忙,加上C语言还得和汇编结合,导致小编一个知识点总是得反复揣摩(太菜了),所以免杀的更新篇幅长度可能会达到两个月和三个月,但是小编能保证&#xff0c…

基于CSDN的Markdown文本编辑器的博客界面优化 | HTML | 文本标签 | 图像标签 | 个人主页引导

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 今天毛毛张分享的内容是如何在CSDN的Markdown编辑器中实现上图的效果,如果觉得能帮助到你的话就点击个人主页点点关注吧❗ 文章目录 1.前言2.基础知识3.字…