Maison >développement back-end >Golang >Comment puis-je inclure les appels de colis externes dans mon rapport de couverture Go ?
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 ./...
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!