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äß enthält, ohne den mit Proto-Erweiterungskonflikten verbundenen Fehler zu verursachen.
Für das Debuggen wird aus folgenden Gründen ein anderer Ansatz empfohlen die Komplexität des Debuggens spezifischer Tests mithilfe der VS-Code-Schnittstelle. 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 Editorverbindung:
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 für den Gurkenstil verwendet werden Tests. 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 die benutzerdefinierte Haltepunkteinstellung und DLV-Verbindung mit Befehlen wie :GoDebugConnect 127.0.0.1:2345. Durch Befolgen 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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3