猿问

如何在运行测试之前自动清理 Visual Code 中的 go 缓存?

Visual Code 和 Go 有一个小麻烦,但主要与最新版本的 go 1.11.x 和新引入的模块系统有关。go 构建器为缓存的构建创建一个名为“auto”的文件夹,可以通过“go clean -cache”清除/删除该文件夹。

如果存在这样的目录,Visual Code 在执行测试时似乎会感到困惑,并抱怨缺少依赖项:

/home/user/.golang/src/github.com/stretchr/testify/assert/assertions.go:20:2: could not import github.com/pmezard/go-difflib/difflib (open auto/4c/4cb1f0f2c9f328e3cade99998704759897fd4e530af38db25c85cdc253c1f1a0-d: no such file or directory)

有没有可能解决这个问题?或者这只是我忘记做的另一个设置?


慕容森
浏览 261回答 3
3回答

喵喔喔

尝试设置环境变量GOCACHE=off。

一只甜甜圈

来自问题 26809 的警告(“GOCACHE=off 导致模块退出测试”):env变量GOCACHE将在1.12被淘汰,go modules1.11启用后不能使用配置 VSCode 使用 usinggo test -count=1 ...更安全。Go 1.12 发行说明(2019 年 2 月)正式发布:构建缓存要求现在需要构建缓存作为消除$GOPATH/pkg.设置环境变量GOCACHE=off将导致go写入缓存的命令失败。

慕容3067478

2022年...打开 VSCode 的 settings.json。要打开 settings.json,请按Ctrl+ ,(或在 Mac 上为Cmd+ ,),然后单击如下所示的打开 JSON 按钮。或者,如果您不想全局设置它,您可以.vscode/settings.json在项目根目录下创建一个文件。在 settings.json 中设置go.testFlags值: {          "go.testFlags": ["-count=1"]  }保存并享受。注意:这些步骤确保每次都像 OP 所希望的那样跳过测试缓存。如果您想要一次性修复,请go clean -testcache在终端中运行。
随时随地看视频慕课网APP

相关分类

Go
我要回答