我对Golang很陌生,我想将它与VSCode一起用作编辑器。
我有一个VSCode工作区,其中包含我的应用程序的源代码,该源代码分为几个包,例如
myapp (the workspace)
src
pck1
f11.go
f11_test.go
pck2
f21.go
f21_test.go
我的目标是能够从VSCode中使用一个命令启动所有测试。我已经安装了GO扩展程序。
在
myapp-workspace.code-workspace
的设置中,我定义了 "settings": {
"go.gopath": "/blah/blah/myapp/",
"go.testFlags": ["-v"]
}
确保
GOPATH
指向我的工作区文件夹。通过此设置,我可以从VSC命令面板运行一个测试文件或一个程序包,但是如果尝试按@icza的建议运行
Go: Test all packages in Workspace
命令,则会在输出窗口中看到启动的命令是/usr/local/go/bin/go test -timeout 30s ./... -v
导致一系列错误消息,第一个是
can't load package: package ./pkg/mod/9fans.net/go@v0.0.0-20181112161441-237454027057/acme: cannot use path@version syntax in GOPATH mode
如果我从VSC集成终端尝试使用
go test
,则会收到错误消息can't load package: package .: no Go files in /blah/blah/myapp
如果从VSC集成终端尝试使用
go test ./...
,我会得到一长串错误,类似于由Go: Test all packages in Workspace
命令生成的错误,最后我得到以下错误src/game/game.go:4:2: cannot find package "pck1" in any of:
/usr/local/go/src/pck1 (from $GOROOT)
/Users/administrator/go/src/pck1 (from $GOPATH)
src/game/game.go:6:2: cannot find package "pck2" in any of:
/usr/local/go/src/pck2 (from $GOROOT)
/Users/administrator/go/src/pck2 (from $GOPATH)
我闻到我在GOPATH值周围做错了什么,但我不知道是什么。
有没有一种方法可以使用一个命令从VSCode内部启动所有程序包中的所有测试?
最佳答案
有一个集成命令:Go: Test all packages in Workspace
。
如果您位于工作空间的根目录中,则还可以在内置终端中运行go test ./...
。 ./...
将递归到所有子文件夹中。参见go test in complex folder structure。
关于go - 从VSCode中启动GO应用程序的所有程序包中的所有测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61454407/