首页  >  文章  >  后端开发  >  如何在 VS Code 中使用标志运行和调试单元测试?

如何在 VS Code 中使用标志运行和调试单元测试?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-27 17:37:31491浏览

How to Run and Debug Unit Tests with Flags in VS Code?

在 VS Code 中运行和调试带有标志的单元测试

要在 VS Code 中运行带有标志的单元测试,可以修改 go. vscode settings.json 文件中的 testFlags 值。然而,这里遇到的问题是运行和调试测试所需的不同配置。

运行测试

要使用 required 标志运行测试,可以使用以下配置使用:

<code class="json">"go.testFlags": [
    "-ldflags",
    "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
]</code>

调试测试

对于调试测试,配置应在标志周围包含单引号:

<code class="json">"go.testFlags": [
    "-ldflags",
    "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'"
]</code>

组合配置

为了避免在配置之间切换,可以尝试以下组合配置:

<code class="json">"go.testFlags": [
    "-ldflags",
    "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'",
    "-ldflags",
    "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn&quot;"  
]</code>

使用 Dlv 进行调试

或者,可以使用 dlv 来调试测试。要在禁用优化的情况下编译测试二进制文件:

go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"

启动无头 dlv 会话:

dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path

通过创建 launch.json 文件将 VS Code 连接到 dlv 会话:

<code class="json">{
    ...
    "configurations": [
        {
            "name": "Debug Test",
            "type": "go",
            "request": "attach",
            "mode": "remote",
            "port": 2345,
            "host": "127.0.0.1",
            "showLog": true,
            "trace": "log"
        }
    ]
}</code>

以上是如何在 VS Code 中使用标志运行和调试单元测试?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn