Maison > développement back-end > Golang > Comment combiner les résultats de couverture de code de plusieurs packages Go ?

Comment combiner les résultats de couverture de code de plusieurs packages Go ?

Barbara Streisand
Libérer: 2024-12-24 11:44:17
original
617 Les gens l'ont consulté

How to Combine Code Coverage Results from Multiple Go Packages?

Comment consolider les résultats de couverture de code pour plusieurs packages dans Go

Lorsque vous testez plusieurs packages dans une bibliothèque Go, il peut être avantageux d'obtenir une vue complète de la couverture du code. Par défaut, l'utilisation de l'indicateur -cover avec le test go fournit des informations de couverture pour des packages individuels.

Pour regrouper les données de couverture sur tous les packages, vous pouvez utiliser l'une des deux approches suivantes :

Utiliser -coverpkg dans Go 1.10 et versions ultérieures :

Dans Go 1.10 et versions ultérieures, l'indicateur -coverpkg vous permet de spécifier un liste de cibles de couverture séparées par des virgules. Pour couvrir toutes les dépendances du package de test, utilisez :

go test -v -coverpkg=./... -coverprofile=profile.cov ./...
go tool cover -func profile.cov
Copier après la connexion

Utilisation d'un script Bash dans les versions antérieures de Go :

Pour les versions Go antérieures à 1.10, pensez à utiliser un script Bash pour collecter et consolider les données de couverture :

#!/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
Copier après la connexion

Ce script parcourt les répertoires contenant des fichiers Go, en exécutant tests avec couverture activée et ajout des résultats à un fichier de profil consolidé (profile.cov). Vous pouvez ensuite utiliser go tool cover pour générer un résumé de la couverture globale du code.

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