go - 从VSCode中启动GO应用程序的所有程序包中的所有测试

标签 go visual-studio-code

我对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/

相关文章:

mysql - 如何获取 MySQL 和 Go 中最后插入的行的 ID?

typescript - Vscode Typescript Intellisense 仅显示第一个选项?

javascript - typescript 源中的断点不起作用

go - golang中最灵活的函数签名

go - 从 Go 应用的 Dataflow 模板创建作业

go - 如何检查错误类型?

html - Golang Martini 模板在渲染 Markdown 时只显示 HTML

git - 已解决 VS Code 中的 git merge 冲突,但仍显示未解决

python - Visual Studio Code 在 Python 终端中的代码之间添加行导致语法错误

visual-studio-code - 从 VS Code 运行 F# Hello World