Maison >développement back-end >Golang >Comment puis-je générer des rapports complets sur la couverture du code dans Go ?
Rapports complets de couverture de code dans Go
Dans le développement Go, l'obtention de rapports de couverture de package individuels est simple à l'aide de l'indicateur -cover. Cependant, obtenir une vue globale de la couverture sur plusieurs packages peut s'avérer difficile.
Pour résoudre ce problème, Go 1.10 a introduit une amélioration significative dans les rapports de couverture de code. L'indicateur -coverpkg accepte désormais une liste de modèles séparés par des virgules à comparer aux dépendances des packages, vous permettant de cibler des zones spécifiques pour l'analyse de couverture.
Pour générer un rapport de couverture complet, vous pouvez désormais exécuter les commandes suivantes :
go test -v -coverpkg=./... -coverprofile=profile.cov ./... go tool cover -func profile.cov
Cette approche rassemblera des données de couverture pour tous les packages qui correspondent au modèle ./... et générera un rapport consolidé comprenant une couverture détaillée informations.
Solution héritée pour les anciennes versions de Go
Avant Go 1.10, l'obtention de rapports de couverture complets nécessitait une approche différente. Une de ces solutions, implémentée dans bash, peut être trouvée dans le projet gosweep sur GitHub :
#!/bin/bash set -e echo 'mode: count' > profile.cov for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d); do if ls $dir/*.go > /dev/null; then go test -short -covermode=count -coverprofile=$dir/profile.tmp $dir if [ -f $dir/profile.tmp ] then cat $dir/profile.tmp | tail -n +2 >> profile.cov rm $dir/profile.tmp fi fi done go tool cover -func profile.cov
Ce script recherche de manière récursive les répertoires contenant des packages Go, exécute le test go avec la couverture activée et regroupe les rapports de couverture individuels. dans un seul fichier profile.cov. Après avoir généré les données de couverture, vous pouvez utiliser go tool cover -func profile.cov pour afficher un rapport détaillé.
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!