如何在 vscode 中设置 go test 路径

How to set path for go test in vscode

我有以下源代码树:

/main.go
/templates/t.tmpl
/pkg/templates.go
/pkg/templates_test.go

/pkg/templates.go 定义使用 var t = template.Must(template.ParseFiles("templates/t.tmpl") 这是正常项目操作所必需的,因为二进制文件是从根文件夹调用的。

然后当我从 vscode Must 调试 templates_test.go 的测试失败时,因为 go test 当前目录是 pkg 而不是项目根目录

如何使 vscode 与 go test 一起使用根项目文件夹?

运行 包源代码目录中的测试是默认的 Go 行为。

https://pkg.go.dev/cmd/go#hdr-Testing_flags:

When 'go test' runs a test binary, it does so from within the corresponding package's source code directory. Depending on the test, it may be necessary to do the same when invoking a generated test binary directly.

要更改行为,请使用相对路径(例如 go project's template package test),或者在测试程序开始时更改所需的目录(例如 TestMain 中的 os.Chdir 等)。