„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie führe ich Unit-Tests mit benutzerdefinierten Flags in VS-Code aus?

Wie führe ich Unit-Tests mit benutzerdefinierten Flags in VS-Code aus?

Veröffentlicht am 18.11.2024
Durchsuche:837

How to Run Unit Tests with Custom Flags in VS Code?

Ausführen von Unit-Tests mit benutzerdefinierten Flags

In Visual Studio Code (VS Code) können Sie beim Ausführen und Debuggen von Unit-Tests auf Herausforderungen stoßen Es müssen bestimmte Flags bereitgestellt werden. Lassen Sie uns das Problem genauer untersuchen und eine umfassende Lösung bereitstellen.

Problemübersicht

Beim Ausführen von Komponententests aus VS-Code müssen Benutzer möglicherweise benutzerdefinierte Flags angeben, wie z. ldflags im bereitgestellten Beispiel. Bei der Integration dieser Flags in den Testläufer von VS Code stießen sie jedoch auf Schwierigkeiten.

Arbeitskonfigurationen

Durch Experimente wurde festgestellt, dass dafür zwei separate Konfigurationen erforderlich sind Sowohl Testausführung als auch Debug-Testfunktionalität erreichen:

  • Test ausführen:

    "go.testFlags": [
      "-ldflags",
      "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
    ]
  • Debug-Test:

    "go.testFlags": [
      "-ldflags",
      "'-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn'"
    ]

Grundlegendes Problem

Der Grund für die unterschiedlichen Konfigurationen liegt darin, wie VS Code den Testbefehl generiert. Beim Debuggen fügt VS Code dem Befehl zusätzliche Parameter hinzu, die sich auf die Art und Weise auswirken, wie die Flags interpretiert werden. Daher sind die einfachen Anführungszeichen in der Debug-Konfiguration erforderlich, um sicherzustellen, dass die Flags korrekt übergeben werden.

Mögliche Lösung

Eine alternative Methode zum Debuggen komplexer Tests ist um die Testbinärdatei zu kompilieren und eine DLV-Debugging-Sitzung zu starten. Dies ermöglicht eine genauere Kontrolle über die Testausführung und das Debugging-Erlebnis.

Verwenden von dlv zum Debuggen

Die folgenden Schritte beschreiben, wie Sie dlv zum Debuggen von Komponententests verwenden:

  1. Kompilieren Sie die Testbinärdatei mit den erforderlichen Flags, wie zum Beispiel:

    go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
  2. Eine kopflose DLV-Sitzung starten:

    dlv exec ./foo.test  --headless --listen=:2345 --log --api-version=2    -- -count=1 -- $(pwd)/some/path
  3. Öffnen Sie in VS Code die Startkonfiguration Datei (Debug: Öffnen Sie launch.json). Erstellen Sie eine Konfiguration ähnlich der folgenden:

    {
     "version": "0.2.0",
     "configurations": [
         {
             "name": "Debug Test",
             "type": "go",
             "request": "attach",
             "mode": "remote",
             "port": 2345,
             "host": "127.0.0.1",
             "showLog":true,
             "trace":"log"
         }
     ]
    }
  4. Setzen Sie Haltepunkte in Ihrem Code.
  5. Führen Sie die Debug-Konfiguration aus (Debug: Öffnen Sie launch.json), um mit dem Debuggen zu beginnen.
Neuestes Tutorial Mehr>

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