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 :
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 ./...
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!