Maison >développement back-end >Golang >Comment puis-je regrouper les résultats de la couverture du package Go ?

Comment puis-je regrouper les résultats de la couverture du package Go ?

DDD
DDDoriginal
2024-12-21 10:44:10951parcourir

How Can I Aggregate Go Package Coverage Results?

Couverture globale du package Go

Lors de l'exécution de tests dans votre bibliothèque Go, vous pourriez rencontrer le besoin d'obtenir un aperçu de la couverture consolidée pour tous ses forfaits. Par défaut, l'indicateur « -cover » fournit uniquement des informations de couverture pour chaque colis individuellement.

Solution

Depuis Go 1.10, vous pouvez utiliser l'indicateur « -coverpkg » pour résoudre ce problème. Exécutez simplement la commande suivante :

go test -v -coverpkg=./... -coverprofile=profile.cov ./...

Après avoir exécuté vos tests, générez l'analyse de couverture agrégée à l'aide de :

go tool cover -func profile.cov

Méthode héritée (Pre-Go 1.10)

Pour les versions Go antérieures à 1.10, vous pouvez utiliser le script bash suivant :

#!/bin/bash

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 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