Maison >développement back-end >Golang >Comment puis-je mesurer la couverture des tests dans Go ?

Comment puis-je mesurer la couverture des tests dans Go ?

DDD
DDDoriginal
2024-11-28 03:57:12356parcourir

How can I measure test coverage in Go?

Comment mesurer la couverture des tests dans Go

L'un des défis des tests logiciels consiste à déterminer dans quelle mesure les tests couvrent le code testé . Cette métrique, connue sous le nom de couverture des tests, est essentielle pour garantir que les tests sont complets et efficaces.

Capacités de couverture des tests de Go

Dans les versions Go 1.2 et ultérieures, le go La commande test prend désormais en charge le calcul et l’affichage des résultats de couverture de test. Pour activer la couverture, utilisez simplement l'indicateur -cover lors de l'exécution des tests.

go test -cover

Cela générera un rapport de couverture de base, indiquant le pourcentage de déclarations couvertes par les tests.

Analyse de couverture détaillée

Pour des rapports de couverture plus détaillés, utilisez l'indicateur -coverprofile pour spécifier un fichier de sortie qui contiendra le profil de couverture. Ce profil peut ensuite être analysé à l'aide de la commande go tool cover.

go test -coverprofile=coverage.out
go tool cover -html=coverage.out

L'indicateur -html génère un rapport HTML qui fournit une représentation visuelle de la couverture, mettant en évidence les lignes qui ne sont pas couvertes.

Tests Blackbox

Pour mesurer la couverture des tests Blackbox (tests qui n'ont pas accès à l'état interne du package), utilisez le -indicateur coverpkg. Cet indicateur spécifie le package qui doit être instrumenté pour la couverture.

go test -coverprofile=.coverage.html -coverpkg=your/pkg your/pkg/pkg_test

Améliorations récentes

Dans Go 1.20, les tests d'intégration peuvent désormais être inclus dans l'analyse de couverture. La commande go build -cover peut être utilisée pour créer des binaires instrumentés par la couverture. Ces binaires peuvent ensuite être utilisés dans des tests d'intégration pour étendre la portée des tests de 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!

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