问题:
当我运行相同的go测试两次时,第二次运行根本没有完成。结果是第一次运行时缓存的结果。
PASS
ok tester/apitests (cached)
链接
我已经检查了https://golang.org/cmd/go/#hdr-Testing_flags,但没有cli标志用于此目的。
问题:
是否有可能强制go test始终运行测试,而不缓存测试结果。
问题:
当我运行相同的go测试两次时,第二次运行根本没有完成。结果是第一次运行时缓存的结果。
PASS
ok tester/apitests (cached)
链接
我已经检查了https://golang.org/cmd/go/#hdr-Testing_flags,但没有cli标志用于此目的。
问题:
是否有可能强制go test始终运行测试,而不缓存测试结果。
测试标志文档中描述了一些选项:
Go clean -testcache:使所有测试结果失效 在测试运行中使用不可缓存的标志。惯用的方法是使用-count=1
也就是说,代码或测试代码中的更改将使缓存的测试结果无效(在使用本地文件或环境变量时也存在扩展逻辑),因此您不应该手动使测试缓存无效。
我修复这个问题的方式(我在macOS上使用Visual Studio Code):
Code > Preferences > Settings
点击…在“设置”页面的右侧
单击Open settings.json
:
将以下代码片段添加到设置中。json文件 “去。testEnvVars ": { “GOCACHE”:“关闭” } 改变go的值。testenvars包含以下内容:"GOCACHE": "off"
在Go11中,我不能在模块中使用GOCACHE禁用缓存,我使用-count=1代替:
go test -count=1
Go11之前:
GOCACHE=off go test
或者,清理测试缓存并再次运行测试:
go clean -testcache && go test
VS Code(2022年)
打开VSCode的settings.json。打开设置。json,按Ctrl +,(或Cmd+,在Mac上),然后单击打开json按钮如下所示。如果你不想全局设置,你可以创建一个.vscode/settings。Json文件在项目根。 开始行动。json中的testFlags值: { “去。testFlags”(“数= 1”): } 节约并享受。
注意:这些步骤确保每次都会跳过测试缓存。如果你想要一次性的修复,那么在终端运行go clean -testcache,正如Marc投票最多的答案所说。