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
Libérer: 2024-10-27 06:32:29
original
674 Les gens l'ont consulté

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>
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal