猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
我怎么知道我在“去测试”中跑步
当我运行“go test”时,我想使用不同的配置文件。我如何知道我的代码是在测试上下文还是正常上下文中运行?是否需要检查某种环境变量?
ABOUTYOU
浏览 381
回答 3
3回答
慕桂英4014372
测试包在加载时会修改全局环境:它注册了许多命令行标志。因此,我们可以检查这些标志是否已注册:func init() { if flag.Lookup("test.v") == nil { fmt.Println("normal run") } else { fmt.Println("run under go test") }}
0
0
0
当年话下
由于该flag.Lookup("test.v")方法对我不起作用,因此我想分享自己的解决方案:strings.HasSuffix(os.Args[0], ".test")或者strings.Contains(os.Args[0], "/_test/")两者似乎都起作用。
0
0
0
白衣非少年
代码示例将有所帮助。但是从您的问题看来,当您可能想将其传递时,听起来好像您已在某处对配置文件的路径进行了硬编码。更改要测试的功能以使用定义配置文件的参数,然后在测试代码中传递与在非测试代码中使用的路径不同的路径。在测试和生产时,代码具有不同的路径是不好的做法。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Go
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续