问题:
当我运行相同的go测试两次时,第二次运行根本没有完成。结果是第一次运行时缓存的结果。
{{1}}
链接
问题:
是否有可能强制执行测试以始终运行测试而不是缓存测试结果。
答案 0 :(得分:67)
testing flags docs中描述了一些选项:
go clean -testcache
:使所有测试结果失效-count=1
也就是说,代码或测试代码的更改将使缓存的测试结果无效(当使用本地文件或环境变量时,还有扩展逻辑),因此您不需要手动使测试缓存无效。
答案 1 :(得分:13)
还GOCACHE=off
提到了here。
答案 2 :(得分:6)
我解决此问题的方式(我在macOS上使用Visual Studio Code):
代码>首选项>设置
点击设置页面右侧的...
点击Open settings.json
要么:
将以下代码段添加到settings.json文件中
"go.testEnvVars": {
"GOCACHE": "off"
}
go.testEnvVars
的值更改为包括以下内容:"GOCACHE": "off"
答案 3 :(得分:1)
在Go11中,我无法使用GOCACHE
和模块来禁用缓存,而是使用-count=1
:
go test -count=1
Go11之前的版本:
GOCACHE=off go test
或者,清理测试缓存并再次运行测试:
go clean -testcache && go test