使用VS Code Go扩展中的运行测试尝试在主包中运行测试
您好,我正在使用Go版本1.16:使用VS Code Go扩展中的运行测试尝试在主包中运行测试,go,visual-studio-code,Go,Visual Studio Code,您好,我正在使用Go版本1.16: $ go version go version go1.16.2 darwin/amd64 并具有以下设置: tree ./ ./ ├── go.mod ├── sum.go └── sum_test.go 当我在下面的屏幕截图中单击run test(在函数上方TestSum)时,我得到一个错误,上面写着: 如果我在文件夹中手动运行go test-run ^TestSum$,它可以正常工作: $ go test -run ^TestSum$ mysum
$ go version
go version go1.16.2 darwin/amd64
并具有以下设置:
tree ./
./
├── go.mod
├── sum.go
└── sum_test.go
当我在下面的屏幕截图中单击run test(在函数上方TestSum
)时,我得到一个错误,上面写着:
如果我在文件夹中手动运行go test-run ^TestSum$
,它可以正常工作:
$ go test -run ^TestSum$ mysum
PASS
ok mysum 0.005s
有人知道我是否错过了的任何配置吗
我如何告诉扩展在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扩展中发现了一个问题,但我还不确定这是否与您看到的问题相同
(抱歉-我本想添加注释,但我没有足够的信用将我的回复添加为注释:-)您在.vscode目录中是否有settings.json或global settings.json?尝试验证是否已设置此配置变量
go.testFlags
// 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)
}
}
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$ mysum
PASS
ok mysum 0.005s
$ /usr/local/go/bin/go test -timeout 30s -run ^TestSum$ mysum