go - vs 代码调试 go 测试未传递标志

标签 go debugging testing visual-studio-code vscode-debugger

我正在尝试在 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/

相关文章:

c++ - 如何调试意外终止的 win32 进程?

android - 包裹写入/读取在 AndroidTestCase 中不起作用 - 为什么?

visual-studio - Go 错误 - 预期为 ';',在 Visual Studio 中找到 'package'

arrays - 解码 map 和 array json

go - 有没有办法将TagLib::PropertyMap传递给Go?

java - 如何在 Mac 上设置 Eclipse 以进行 Wowza 模块调试

go - Cloudfoundry 密码 - 代码漏洞

java - 通过将源代码复制到我的项目来调试 rt.jar 中的类

java - Java 集成测试中的 void 方法

testing - 是否有可用于测试 OAuth 2.0 客户端实现的授权服务器?