Maison > développement back-end > Golang > Comment puis-je obtenir une couverture complète du code Go sur plusieurs packages ?

Comment puis-je obtenir une couverture complète du code Go sur plusieurs packages ?

Linda Hamilton
Libérer: 2024-12-10 18:53:10
original
692 Les gens l'ont consulté

How Can I Get Comprehensive Go Code Coverage Across Multiple Packages?

Obtenir des informations sur la couverture au-delà des limites des packages dans Go

Lorsque vous travaillez avec des projets Go impliquant plusieurs packages, il est crucial de garantir des informations de couverture complètes pour analyse précise du code. Cependant, il n'est pas rare de rencontrer des situations où les rapports de couverture excluent les fonctions résidant dans des packages différents.

Considérons un scénario dans lequel votre projet comprend la structure suivante :

  • app/api/ foo.go : contient une fonction qui appelle une fonction située dans src/db/bar.go.

Lors de l'exécution de l'analyse de couverture, vous remarquerez peut-être que le rapport de couverture ne montre aucune ligne couverte pour bar.go. Cet écart se produit car le mécanisme de couverture par défaut dans Go n'inclut pas les fonctions extérieures au package testé.

Solution : étendre la couverture avec Coverpkg

Pour surmonter cette limitation, Go fournit une solution via l'indicateur -coverpkg. En spécifiant cet indicateur lors de l'analyse de couverture, vous pouvez étendre le calcul de couverture pour inclure des fonctions dans d'autres packages.

La commande de couverture mise à jour devrait ressembler à ceci :

go test -coverpkg=./... -coverprofile=coverage.out ./...
Copier après la connexion

Le -coverpkg=. L'indicateur /... indique Go pour calculer la couverture pour tous les packages de votre projet, y compris les appels de fonction entre packages. Par la suite, le rapport de couverture fournira un aperçu de la couverture de foo.go et bar.go.

Cette approche élimine le besoin de tests séparés pour les packages de base de données et d'API, rationalisant le processus de test tout en garantissant une analyse complète de la couverture. .

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