使用VS Code Go扩展中的运行测试尝试在主包中运行测试

使用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版本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

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