我正在尝试在 vs-code 上配置调试器以进行 go 中的一些测试。我必须向它传递一些标志,但效果不佳。
main.go
package main
import (
"flag"
"fmt"
)
func DoTheThing() {
flag1Ptr := flag.Bool("flag1", false, "flag1 is a flag")
flag.Parse()
fmt.Println(*flag1Ptr)
fmt.Println("Hello, world")
}
func main() {
DoTheThing()
}
main_test.go
package main
import "testing"
func TestDoTheThing(t *testing.T) {
DoTheThing()
}
启动.json
{
"name": "Launch app",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}",
"args": [
"-flag1"
]
},
{
"name": "Run Tests",
"type": "go",
"request": "launch",
"mode": "test",
"program": "${workspaceFolder}",
"args": [
"--", "-flag1"
]
}
如果我使用启动应用程序配置运行它,它会以正确的方式传递值,但使用测试它不会设置参数
使用启动应用程序配置输出
true
Hello, world
使用运行测试配置输出
false
Hello, world
最佳答案
package main
import (
"flag"
"fmt"
)
var flag1Ptr *bool
func init(){
flag1Ptr = flag.Bool("flag1", false, "flag1 is a flag")
}
func DoTheThing() {
flag.Parse()
fmt.Println(*flag1Ptr)
fmt.Println("Hello, world")
}
func main() {
DoTheThing()
}
launch.json
{
"name": "Launch app",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}",
"args": [
"-flag1"
]
},
{
"name": "Run Tests",
"type": "go",
"request": "launch",
"mode": "test",
"program": "${workspaceFolder}",
"args": ["-flag1"]
}
关于go - vs 代码调试 go 测试未传递标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73036345/