在运行测试之前,如何自动清除Visual Code中的go缓存?
There is a small nuisance with Visual Code and Go, but is mainly related to the most recent release of go 1.11.x and the newly introduced module system. The go builder creates a folder called 'auto' for cached builds, which can be cleaned / deleted via 'go clean -cache'.
Visual Code seems to be confused when executing tests, if such a directory is present, and complains about missing dependencies:
/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)
is there any possibility to fix this? Or is it just another setting I forgot to make?
Visual Code和Go有点麻烦,但主要与go 1.11的最新版本有关。 x和新引入的模块系统。 go构建器为缓存的构建创建了一个名为“ auto”的文件夹,可以通过“ go clean -cache”来清除/删除该文件夹。 p>
执行测试时,如果存在这样的目录,Visual Code似乎会感到困惑,并且抱怨缺少依赖项: p>
/ home /user/.golang/src/github.com/stretchr/testify/assert/assertions.go:20:2:无法导入github.com/pmezard/go-difflib/difflib(open auto / 4c / 4cb1f0f2c9f328e3cade99998704759759fd4e530af38db25c85cdc253c1f1a 没有此类文件或目录)
code> pre>
是否有可能解决此问题? 还是只是我忘记做的另一种设置? p>
div>
Try setting the environment variable GOCACHE=off
.
Warning from issue 26809 ("GOCACHE=off causes modules to exit the tests"):
The
GOCACHE
env variable will be phased out out in 1.12, and cannot be used withgo modules
enabled in 1.11
Configuring VSCode to use using go test -count=1 ...
is safer.
The Go 1.12 release notes (for February 2019) makes that official:
Build cache requirement
The build cache is now required as a step toward eliminating
$GOPATH/pkg
.
Setting the environment variableGOCACHE=off
will causego
commands that write to the cache to fail.