Maison > développement back-end > Golang > Comment puis-je inclure les appels de colis externes dans mon rapport de couverture Go ?

Comment puis-je inclure les appels de colis externes dans mon rapport de couverture Go ?

Linda Hamilton
Libérer: 2024-12-01 10:27:10
original
868 Les gens l'ont consulté

How Can I Include External Package Calls in My Go Coverage Report?

Inclure les appels de forfait dans la couverture Go

Problème :

Dans un projet Go avec un structure multi-packages, certaines fonctions des packages en dehors du package actuellement testé sont ignorées par le rapport de couverture. Plus précisément, les fonctions de bar.go situées dans le package db n'affichent aucune couverture bien qu'elles soient appelées depuis foo.go dans le package api.

Solution :

Pour Pour résoudre ce problème, l'indicateur -coverpkg doit être ajouté à la commande go test. L'indicateur -coverpkg spécifie les packages à inclure dans le rapport de couverture.

Explication :

Par défaut, le rapport de couverture inclut uniquement les packages directement importés par le test emballer. Dans ce cas, foo_test.go (le package de test pour foo.go) n'importe pas directement la base de données, donc les fonctions de bar.go ne sont pas couvertes.

L'ajout de l'indicateur -coverpkg inclut explicitement les packages spécifiés. dans l’analyse de la couverture. Dans ce cas, la commande suivante inclurait tous les packages du répertoire courant (./...) dans le rapport de couverture :

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

Cela générera un rapport de couverture qui inclut l'appel de fonction à bar. allez depuis foo.go.

Remarque :

L'utilisation de l'indicateur -coverpkg peut avoir un impact sur le temps d'exécution du test, car elle nécessite l'analyse d'un un plus grand nombre de colis. Cependant, il est nécessaire d'obtenir des informations de couverture précises pour les appels de fonctions inter-packages.

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