Komponententests mit Flags ausführen und debuggen: Widersprüchliche Protobuf-Erweiterungen angehen
Beim Debuggen von Komponententests in VS-Code kann es erforderlich sein, sie zu bestehen zusätzliche Flags, um widersprüchliche Protobuf-Erweiterungen zu berücksichtigen. Dieses Handbuch bietet eine Lösung für dieses Problem und ermöglicht ein nahtloses Debuggen.
Die ursprüngliche Konfiguration in VS Code Settings.json versucht, das erforderliche Flag „-ldflags“-X google.golang.org/protobuf/reflect hinzuzufügen /protoregistry.conflictPolicy=warn"'. Bei dieser Konfiguration tritt jedoch ein Problem auf, wenn VS Code einen Testbefehl mit einfachen Anführungszeichen um das Flag generiert.
Um dieses Problem zu beheben, ist eine Anpassung der Konfiguration in „settings.json“ erforderlich. Durch die Änderung sollten die einfachen Anführungszeichen rund um den Flag-Wert entfernt werden:
"go.testFlags": [ "-ldflags", "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" ]
Mit dieser Änderung generiert VS Code einen Testbefehl, der das erforderliche Flag ordnungsgemäß einschließt, ohne den mit Proto-Erweiterungskonflikten verbundenen Fehler zu verursachen.
Für das Debuggen wird aufgrund der Komplexität des Debuggens bestimmter Tests mithilfe der VS-Code-Schnittstelle ein anderer Ansatz empfohlen. Das Kompilieren der Testbinärdatei mit bestimmten Flags und die Verwendung von dlv für Headless-Debugging ermöglicht eine bessere Kontrolle und effizientes Debuggen.
So kompilieren Sie die Testbinärdatei:
go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
Dieser Befehl generiert eine Binärdatei mit den erforderlichen Flags zum Debuggen. So verbinden Sie dlv im Headless-Modus für die Editor-Verbindung:
dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path
Hier ist foo.test die generierte Binärdatei, -count=1 stellt benutzerdefinierte Flags zum Testen dar und $(pwd)/some/path kann es sein Wird für Tests nach Gurkenart verwendet. Verbinden Sie Ihren Editor mit der dlv-Sitzung und beginnen Sie mit dem Debuggen.
Zusätzliche Informationen
Go bietet auch praktische Methoden zum Starten von dlv über Inline-Flags und für Vim-Benutzer das vim -go-Plugin ermöglicht benutzerdefinierte Haltepunkteinstellungen und DLV-Verbindungen mit Befehlen wie :GoDebugConnect 127.0.0.1:2345. Durch die Befolgung der oben beschriebenen Schritte können Entwickler Unit-Tests mit Flags effektiv ausführen und debuggen und so reibungslose Tests und Code-Wartung gewährleisten.
Das obige ist der detaillierte Inhalt vonWie kann ich widersprüchliche Protobuf-Erweiterungen in Go-Komponententests mithilfe von VS-Code debuggen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!