Maison >développement back-end >Golang >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 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 11:21:02247parcourir

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

Exécuter des 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 proposons 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 test de débogage :

  • Exécuter le test :

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

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

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émarrez 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 le fichier de configuration de lancement (Debug : ouvrez launch.json). Créez une configuration similaire à la suivante :

    <code class="json">{
     "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"
         }
     ]
    }</code>
  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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn