首页 > 解决方案 > 在 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

标签: govisual-studio-code

解决方案


在运行“运行测试”之前,您是否将 go.mod 中的模块名称从 更改为mainmysum如果重新加载窗口,您是否仍然看到问题?(Cmd+Shift+P -> “开发者:重新加载窗口”)

我在当前的 go 扩展https://github.com/golang/vscode-go/issues/1373中发现了一个问题,但我不确定这是否与您看到的问题相同。

(抱歉 - 我打算添加为评论,但我没有足够的信用将我的回复添加为评论:-))


推荐阅读