VS Code でフラグを使用した単体テストの実行とデバッグ
VS Code でフラグを使用して単体テストを実行するには、go を変更できます。 vscode settings.json ファイルの testFlags 値。ただし、ここで発生する問題は、テストの実行とデバッグに必要な構成が異なることです。
テストの実行
必要なフラグを使用してテストを実行するには、次の構成を使用できます。使用:
<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 中国語 Web サイトの他の関連記事を参照してください。