Maison >développement back-end >Golang >Comment puis-je générer des rapports complets sur la couverture du code dans Go ?

Comment puis-je générer des rapports complets sur la couverture du code dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 19:11:09821parcourir

How Can I Generate Comprehensive Code Coverage Reports in 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!

Déclaration:
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