Résolution des écarts de couverture de code dans des dossiers séparés pour les projets GO
Lorsque vous travailliez sur un projet avec une structure particulière, où les packages et leurs tests étaient situés dans des dossiers séparés, vous avez rencontré un problème. Malgré l'exécution du code dans stuff.go à partir de stuff_test.go, le rapport de couverture affichait 0,0 %.
Cause possible et solution
Le problème survient en raison de la valeur par défaut de GO comportement d’analyse de couverture, qui s’applique uniquement au package testé. Pour surmonter ce problème, l'indicateur -coverpkg peut être utilisé pour spécifier les packages pour lesquels les données de couverture doivent être collectées.
En utilisant l'option -coverpkg, vous pouvez spécifier que les tests dans test/stuff/stuff_test.go doivent pensez également à la couverture du code pour stuff/stuff.go. Cela garantit que l'analyse de couverture englobe tous les packages pertinents.
Voici un exemple de commande qui démontre l'utilisation de -coverpkg :
go test ./test/... -coverpkg ./...
Cette commande exécute des tests dans des packages correspondant au chemin de test et inclut informations sur la couverture pour tous les forfaits correspondant à ./....
Affichage de la couverture Rapport
Une fois les tests exécutés, vous pouvez générer et visualiser le rapport de couverture à l'aide des commandes suivantes :
go tool cover -html=cover.out
Cette commande génère un rapport de couverture HTML nommé cover.out, qui peut être ouvert dans un navigateur Web pour visualiser les données 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!