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!