问题:
当我运行相同的go测试两次时,第二次运行根本没有完成.结果是第一次运行时缓存的结果.
PASS
ok tester/apitests (cached)
Run Code Online (Sandbox Code Playgroud)
链接
我已经检查过https://golang.org/cmd/go/#hdr-Testing_flags但是没有cli标志用于此目的.
题:
是否有可能强制执行测试以始终运行测试而不是缓存测试结果.
Jul*_*oro 14
对于 VS Code(2022 年)
打开 VSCode 的 settings.json。要打开 settings.json,请按Ctrl+ ,(或Mac 上的Cmd+ ,),然后单击如下所示的“打开 JSON”按钮。或者,如果您不想全局设置它,您可以.vscode/settings.json在项目根目录创建一个文件。
在settings.json中设置go.testFlags值:
{
"go.testFlags": ["-count=1"]
}
Run Code Online (Sandbox Code Playgroud)
保存并享受。
注意:这些步骤确保每次都会跳过测试缓存。如果您想要一次性修复,请go clean -testcache在终端中运行,正如 Marc 得票最多的答案所说。
在Go11中,我无法通过GOCACHE模块禁用缓存,而是使用-count=1:
go test -count=1
Run Code Online (Sandbox Code Playgroud)
在Go11之前:
GOCACHE=off go test
Run Code Online (Sandbox Code Playgroud)
或者,清理测试缓存并再次运行测试:
go clean -testcache && go test
Run Code Online (Sandbox Code Playgroud)
我修复它的方式(我在macOS上使用Visual Studio Code):
代码>首选项>设置
单击...设置页面的右侧
点击 Open settings.json
或者:
将以下代码段添加到settings.json文件中
"go.testEnvVars": {
"GOCACHE": "off"
}
Run Code Online (Sandbox Code Playgroud)go.testEnvVars包括以下内容:"GOCACHE": "off"