go - 在 VS Code Go 扩展中使用运行测试尝试在包 main 中运行测试
问题描述
嗨,我使用的是 Go 版本 1.16:
$ go version
go version go1.16.2 darwin/amd64
# .zshrc
#
# Go Setup
export GOPATH="$HOME/go"
export PATH=$PATH:$GOPATH/bin
并进行此设置:
tree ./
./
├── go.mod
├── sum.go
└── sum_test.go
// go.mod
module mysum
go 1.16
// sum.go
package mysum
func Sum(numbers [5]int) int {
sum := 0
for _, number := range numbers {
sum += number
}
return sum
}
// sum_test.go
package mysum
import "testing"
func TestSum(t *testing.T) {
numbers := [5]int{1, 2, 3, 4, 5}
got := Sum(numbers)
want := 15
if got != want {
t.Errorf("got %d want %d given, %v", got, want, numbers)
}
}
当我在下面的屏幕截图中单击运行测试(函数上方TestSum
)时,我收到一条错误消息:
Running tool: /usr/local/go/bin/go test -timeout 30s -run ^TestSum$ main
package main is not in GOROOT (/usr/local/go/src/main)
如果我在文件夹中手动运行go test -run ^TestSum$
它可以正常工作:
$ go test -run ^TestSum$ mysum
PASS
ok mysum 0.005s
有谁知道我是否错过了Go with VS Code的任何配置?
如何告诉扩展在mysum
包而不是main
包中运行测试?
$ /usr/local/go/bin/go test -timeout 30s -run ^TestSum$ mysum
Go 扩展 v0.23.2,VS 代码版本:1.54.2
解决方案
在运行“运行测试”之前,您是否将 go.mod 中的模块名称从 更改为main
?mysum
如果重新加载窗口,您是否仍然看到问题?(Cmd+Shift+P -> “开发者:重新加载窗口”)
我在当前的 go 扩展https://github.com/golang/vscode-go/issues/1373中发现了一个问题,但我不确定这是否与您看到的问题相同。
(抱歉 - 我打算添加为评论,但我没有足够的信用将我的回复添加为评论:-))
推荐阅读
- javascript - 什么时候应该创建一个类,什么时候应该在 NodeJs 中创建一个函数?
- http - ASP.NET Core 自定义中间件重定向到操作不起作用
- appium - 如何在 Python 中正确关闭 Appium 驱动程序?
- java - 具有可选转换的 Java 流如何工作
- python - 如何更改返回值上的行标签?
- angular - 如何根据收到的数据向动态表添加不同的图标?
- angularjs - 在 $http 发布请求中发布数据
- c# - 转换位置后玩家不会随着重力向下移动 - UNITY 2D
- php - 调用 int 上的成员函数 set()
- c# - 更改 api 控制器答案上的 json 字段名称