Maison  >  Article  >  développement back-end  >  Comment exécuter et déboguer des tests unitaires avec des indicateurs dans VS Code ?

Comment exécuter et déboguer des tests unitaires avec des indicateurs dans VS Code ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 17:37:31491parcourir

How to Run and Debug Unit Tests with Flags in VS Code?

Exécution et débogage de tests unitaires avec des indicateurs dans VS Code

Pour exécuter des tests unitaires avec des indicateurs dans VS Code, on peut modifier le go. valeur testFlags dans le fichier vscode settings.json. Cependant, le problème rencontré ici réside dans les différentes configurations requises pour l'exécution et le débogage des tests.

Exécution de tests

Pour exécuter des tests avec l'indicateur requis, la configuration suivante peut être utilisé :

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

Tests de débogage

Pour les tests de débogage, la configuration doit inclure des guillemets simples autour du drapeau :

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

Configuration combinée

Pour éviter de basculer entre les configurations, on peut essayer la configuration combinée suivante :

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

Utilisation de Dlv pour le débogage

Alternativement, on peut utiliser dlv pour déboguer les tests. Pour compiler le binaire de test avec les optimisations désactivées :

go test -c -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -gcflags="all=-N -l"

Démarrez une session dlv sans tête :

dlv exec ./foo.test --headless --listen=:2345 --log --api-version=2 -- -count=1 -- $(pwd)/some/path

Connectez VS Code à la session dlv en créant un fichier launch.json :

<code class="json">{
    ...
    "configurations": [
        {
            "name": "Debug Test",
            "type": "go",
            "request": "attach",
            "mode": "remote",
            "port": 2345,
            "host": "127.0.0.1",
            "showLog": true,
            "trace": "log"
        }
    ]
}</code>

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