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