"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je déboguer les extensions Protobuf en conflit dans les tests unitaires Go à l'aide de VS Code ?

Comment puis-je déboguer les extensions Protobuf en conflit dans les tests unitaires Go à l'aide de VS Code ?

Publié le 2024-11-07
Parcourir:217

How can I debug conflicting Protobuf extensions in Go unit tests using VS Code?

Exécuter et déboguer des tests unitaires avec des indicateurs : gérer les extensions Protobuf en conflit

Lors du débogage des tests unitaires dans VS Code, il peut être nécessaire de réussir indicateurs supplémentaires pour tenir compte des extensions Protobuf en conflit. Ce guide fournit une solution à ce problème, permettant un débogage transparent.

La configuration d'origine dans VS Code settings.json tente d'ajouter l'indicateur requis '-ldflags "-X google.golang.org/protobuf/reflect /protoregistry.conflictPolicy=warn"'. Cependant, cette configuration est confrontée à un problème lorsque VS Code génère une commande de test avec des guillemets simples autour de l'indicateur.

Pour résoudre ce problème, un ajustement de la configuration dans settings.json est requis. La modification doit supprimer les guillemets simples autour de la valeur de l'indicateur :

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

Avec cette modification, VS Code générera une commande de test qui inclut correctement l'indicateur nécessaire sans provoquer l'erreur associée aux conflits d'extension de proto.

Pour le débogage, une approche différente est recommandée en raison de les complexités du débogage de tests spécifiques à l’aide de l’interface VS Code. La compilation du binaire de test avec des indicateurs spécifiques et l'utilisation de DLV pour le débogage sans tête permettent un meilleur contrôle et un débogage efficace.

Pour compiler le binaire de test :

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

Cette commande génère un binaire avec les indicateurs requis pour le débogage. Pour connecter Dlv en mode sans tête pour la connexion à l'éditeur :

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

Ici, foo.test est le binaire généré, -count=1 représente des indicateurs personnalisés pour les tests, et $(pwd)/some/path peut être utilisé pour le style concombre essais. Connectez votre éditeur à la session dlv et démarrez le débogage.

Informations supplémentaires

Go fournit également des méthodes pratiques pour lancer dlv via des indicateurs en ligne, et pour les utilisateurs de Vim, le vim Le plugin -go permet un paramètre de point d'arrêt personnalisé et une connexion DLV à l'aide de commandes telles que :GoDebugConnect 127.0.0.1:2345. En suivant les étapes décrites ci-dessus, les développeurs peuvent exécuter et déboguer efficacement des tests unitaires avec des indicateurs, garantissant ainsi des tests fluides et une maintenance du code.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3