Maison  >  Article  >  développement back-end  >  Pourquoi mon rapport de couverture de code Go affiche-t-il 0 % lors de tests sur des dossiers distincts ?

Pourquoi mon rapport de couverture de code Go affiche-t-il 0 % lors de tests sur des dossiers distincts ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-25 09:55:12604parcourir

Why Does My Go Code Coverage Report Show 0% When Testing Across Separate Folders?

Incohérences de couverture de code de débogage dans des dossiers Go séparés

Lorsque vous testez unitairement du code dans différents dossiers d'un projet Go, vous pouvez rencontrer des écarts dans les rapports de couverture de code. Cela peut être frustrant, car vous pouvez vous attendre à ce que tout le code soit couvert lors de l'exécution de tests dans les sous-dossiers.

Problème :

Malgré l'exécution du code à partir du dossier stuff dans le stuff_test, le rapport de couverture affiche 0 % des déclarations couvertes. La structure de projet suivante est impliquée :

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

Cause possible :

L'analyse de la couverture de code est limitée au package testé par défaut. Dans ce cas, le package stuff_test se trouve dans un dossier distinct du package stuff, à l'origine du problème.

Solution :

Pour résoudre ce problème, vous pouvez utiliser l'option -coverpkg lors de l'exécution de go test. Cette option vous permet de spécifier les packages pour lesquels vous souhaitez collecter des informations de couverture.

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

Cette commande appliquera l'analyse de couverture à tous les packages qui correspondent au modèle spécifié, qui dans ce cas concerne tous les packages du répertoire actuel et ses sous-répertoires.

Affichage du rapport de couverture :

Une fois les tests exécutés, vous pouvez générer un rapport de couverture à l'aide de la commande go tool cover.

go tool cover -html=cover.out

Cette commande créera un rapport HTML nommé cover.out que vous pourrez ouvrir dans un navigateur Web pour afficher les informations de couverture pour tous les packages spécifiés.

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