Maison >développement back-end >Golang >Comment puis-je obtenir une couverture précise du code Go sur des dossiers distincts ?

Comment puis-je obtenir une couverture précise du code Go sur des dossiers distincts ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-26 15:29:09448parcourir

How Can I Get Accurate Go Code Coverage Across Separate Folders?

Détection de la couverture de code dans des dossiers distincts dans Golang

Dans un projet avec une structure comme :

stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test

quand lors de l'exécution de stuff_test, la couverture du code pour stuff.go est de 0,0 %. Bien que le déplacement de *_test.go dans le dossier stuff résolve le problème, cela soulève des questions sur la structure du projet et les meilleures pratiques de Go.

Solution via -coverpkg Flag

À Pour résoudre cette situation sans modifier la structure du projet, utilisez l'indicateur -coverpkg. Cet indicateur permet de spécifier les packages à inclure dans l'analyse de couverture.

Pour la structure de projet donnée, la commande devient :

go test ./test/... -coverprofile=cover.out -coverpkg ./...

Cette commande analyse tous les tests dans le ./test/. .. chemin pour les informations de couverture, y compris les packages correspondants ./....

Génération et affichage de la couverture Rapport

Une fois les tests exécutés, utilisez go tool cover pour générer un rapport de couverture :

go tool cover -html=cover.out

Cela crée un rapport HTML détaillant les informations de couverture des packages analysés, fournissant un aperçu de la couverture du code dans les dossiers du projet.

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