"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment exécuter des tests unitaires avec des indicateurs personnalisés dans VS Code ?

Comment exécuter des tests unitaires avec des indicateurs personnalisés dans VS Code ?

Publié le 2024-11-18
Parcourir:844

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

Exécution de tests unitaires avec des indicateurs personnalisés

Dans Visual Studio Code (VS Code), vous pouvez rencontrer des difficultés lors de l'exécution et du débogage de tests unitaires lorsque vous besoin de fournir des drapeaux spécifiques. Examinons le problème et fournissons une solution complète.

Présentation du problème

Lors de l'exécution de tests unitaires à partir de VS Code, les utilisateurs peuvent avoir besoin de spécifier des indicateurs personnalisés, tels que - ldflags dans l’exemple fourni. Cependant, ils ont rencontré des difficultés lors de l'intégration de ces indicateurs dans le lanceur de tests de VS Code.

Configurations de travail

Grâce à l'expérimentation, il a été découvert que deux configurations distinctes sont nécessaires pour réaliser à la fois les fonctionnalités d'exécution de test et de débogage :

  • Exécuter le test :

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

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

Problème sous-jacent

La raison des différentes configurations réside dans la façon dont VS Code génère la commande de test. Lors du débogage, VS Code ajoute des paramètres supplémentaires à la commande, ce qui affecte la façon dont les indicateurs sont interprétés. En tant que tels, les guillemets simples dans la configuration de débogage sont nécessaires pour garantir que les indicateurs sont transmis correctement.

Solution possible

Une méthode alternative suggérée pour le débogage de tests complexes est pour compiler le binaire de test et démarrer une session de débogage dlv. Cela permet un contrôle plus précis de l'exécution des tests et de l'expérience de débogage.

Utilisation de Dlv pour le débogage

Les étapes suivantes décrivent comment utiliser DLV pour le débogage des tests unitaires :

  1. Compilez le binaire de test avec les indicateurs nécessaires, tels que :

    go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"
  2. Démarrer une session dlv sans tête :

    dlv exec ./foo.test  --headless --listen=:2345 --log --api-version=2    -- -count=1 -- $(pwd)/some/path
  3. Dans VS Code, ouvrez la configuration de lancement (Débogage : ouvrez launch.json). Créez une configuration similaire à la suivante :

    {
     "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. Définissez des points d'arrêt dans votre code.
  5. Exécutez la configuration de débogage (Debug : ouvrez launch.json) pour démarrer le débogage.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3