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!