首页 > 后端开发 > Golang > 正文

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

Mary-Kate Olsen
发布: 2024-10-27 17:37:31
原创
501 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!