Maison >développement back-end >Golang >Comment configurer « go.testFlags » pour l'exécution et le débogage des tests unitaires dans VS Code ?

Comment configurer « go.testFlags » pour l'exécution et le débogage des tests unitaires dans VS Code ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-27 06:32:29635parcourir

How to Configure `go.testFlags` for Both Running and Debugging Unit Tests in VS Code?

Débogage des tests unitaires avec des indicateurs dans VS Code

Lors de l'exécution de tests unitaires dans Visual Studio Code (VS Code), il peut être nécessaire de inclure des drapeaux supplémentaires. Par exemple, pour résoudre une erreur spécifique rencontrée lors des tests, l'indicateur -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" doit être fourni.

Pour définir cet indicateur dans VS Code, la configuration go.testFlags dans settings.json peut être modifiée comme suit :

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

Cependant, l'utilisation de cette configuration en conjonction avec l'Explorateur de tests ou la fonctionnalité de lentille de code peut toujours entraîner un message d'erreur de panique. : proto : le numéro d'extension 1042 est déjà enregistré sur le message google.protobuf.FileOptions.

Distinction entre les configurations de test d'exécution et de débogage

En comparant les configurations go.testFlags pour exécuter et déboguer les tests, il a été découvert que la principale différence réside dans le formatage de la valeur de l'indicateur. Pour les tests d'exécution, la valeur de l'indicateur doit être entourée d'un seul jeu de guillemets doubles ("), tandis que pour les tests de débogage, la valeur de l'indicateur doit être entourée de guillemets simples (') et de guillemets doubles ("). Cette distinction est probablement due à une limitation ou à une exigence dans la chaîne d'outils de débogage sous-jacente utilisée par VS Code.

Configuration recommandée

Pour prendre en charge les fonctionnalités de test d'exécution et de débogage, il Il est recommandé de définir des configurations go.testFlags distinctes pour chaque scénario. Pour exécuter les tests, utilisez la configuration suivante :

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

Pour les tests de débogage, utilisez la configuration suivante :

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

Considérations supplémentaires sur le débogage

Pour des scénarios de débogage plus complexes, il peut être nécessaire d'utiliser le débogueur dlv. En compilant le binaire de test avec des indicateurs supplémentaires, tels que -gcflags="all=-N -l", et en lançant une session dlv sans tête, il devient possible de connecter un éditeur à l'environnement de débogage. Pour VS Code, cela peut être réalisé en ouvrant le fichier launch.json et en configurant une configuration de débogage 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>

Cette configuration permet un débogage transparent via le panneau de débogage dans VS 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