Heim >Backend-Entwicklung >Golang >Wie kann ich Unit-Tests mit Flags in VS-Code ausführen und debuggen?
Ausführen und Debuggen von Unit-Tests mit Flags in VS-Code
Um Unit-Tests mit Flags in VS-Code auszuführen, kann man den Vorgang ändern. testFlags-Wert in der vscode-settings.json-Datei. Das hier aufgetretene Problem sind jedoch die unterschiedlichen Konfigurationen, die zum Ausführen und Debuggen von Tests erforderlich sind.
Tests ausführen
Um Tests mit dem erforderlichen Flag auszuführen, kann die folgende Konfiguration verwendet werden verwendet:
<code class="json">"go.testFlags": [ "-ldflags", "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" ]</code>
Debugging-Tests
Für Debugging-Tests sollte die Konfiguration einfache Anführungszeichen um das Flag enthalten:
<code class="json">"go.testFlags": [ "-ldflags", "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'" ]</code>
Kombinierte Konfiguration
Um das Wechseln zwischen Konfigurationen zu vermeiden, kann man die folgende kombinierte Konfiguration ausprobieren:
<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 zum Debuggen verwenden
Alternativ kann man dlv zum Debuggen von Tests verwenden. So kompilieren Sie die Testbinärdatei mit deaktivierten Optimierungen:
go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
Starten Sie eine Headless-DLV-Sitzung:
dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path
Verbinden Sie VS-Code mit der DLV-Sitzung, indem Sie eine launch.json-Datei erstellen:
<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>
Das obige ist der detaillierte Inhalt vonWie kann ich Unit-Tests mit Flags in VS-Code ausführen und debuggen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!