Les tests d'intégration jouent un rôle crucial pour garantir la fiabilité et l'efficacité de votre API REST. Cependant, mesurer la couverture obtenue par ces tests peut s’avérer difficile. Cet article aborde un problème courant : obtenir une couverture de test précise lors de l'écriture de tests d'intégration externes aux limites du package.
Comme mentionné dans l'enquête, l'utilisation de go test -cover seule peut donner un 0 Résultat de couverture en % pour les tests d’intégration qui ne font pas partie du package testé. La raison réside dans le fait que l'outil de couverture ne prend en compte que les packages testés, pas ceux qu'ils utilisent.
La solution réside dans l'utilisation de la directive -coverpkg. Cette option vous permet de spécifier les packages spécifiques dont vous souhaitez mesurer la couverture, même si ces packages ne sont pas explicitement testés. Par exemple, la commande suivante :
$ go test -cover -coverpkg mypackage ./src/api/...
mesurera la couverture au sein du package mypackage, même si les tests eux-mêmes sont définis dans un package distinct.
Pour illustrer la différence, considérons le scénario suivant :
Non -coverpkg :
$ go test -cover ./src/api/... ok /api 0.191s coverage: 71.0% of statements ok /api/mypackage 0.023s coverage: 0.7% of statements
Avec -coverpkg :
$ go test -cover -coverpkg mypackage ./src/api/... ok /api 0.190s coverage: 50.8% of statements in mypackage ok /api/mypackage 0.022s coverage: 0.7% of statements in mypackage
Comme vous pouvez le constater, la couverture mypackage est nettement plus élevée lors de l'utilisation de -coverpkg, fournissant une représentation plus précise de la couverture réelle obtenue.
En tirant parti Grâce à la directive -coverpkg, les développeurs peuvent mesurer efficacement la couverture des packages utilisés dans leurs tests d'intégration, ce qui leur permet d'identifier les domaines dans lesquels des tests supplémentaires sont nécessaires. Ces rapports de couverture améliorés contribuent au développement de systèmes logiciels plus robustes et plus fiables.
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!