Détermination de la couverture des tests dans les tests d'intégration Go
Les tests d'intégration visent à évaluer la fonctionnalité d'un système dans son ensemble, souvent en se moquant ou en le contrôlant dépendances externes. Cependant, déterminer la couverture des tests d'intégration pose des défis uniques.
Mesurer la couverture dans les tests hors package
Dans le scénario décrit, les tests sont distincts des packages. ils testent. Par conséquent, la commande go test -cover signale une couverture de 0 %. Pour résoudre ce problème, on peut utiliser la directive -coverpkg.
Utiliser -coverpkg pour une couverture de paquet spécifique
La directive -coverpkg permet de mesurer la couverture de test dans un domaine spécifié. package, même si les tests sont externes. Elle prend le chemin du package comme argument.
Par exemple, la commande suivante mesure la couverture du package mypackage :
$ go test -cover -coverpkg mypackage ./src/api/...
Cette approche permet une analyse ciblée de la couverture des packages dans les tests d'intégration.
Exemple de couverture Sortie
Prenons un exemple où le package API contient des tests dans main_test.go. La majeure partie de la logique métier réside dans le package mypackage. L'exécution de la commande avec -coverpkg fournit une représentation plus précise de la couverture :
$ 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
Cette sortie montre que les tests couvrent 50,8 % des instructions dans le package mypackage. En revanche, sans utiliser -coverpkg, la couverture semblerait plus élevée à 71,0 %, ce qui est dû à des tests en dehors du package spécifié.
Considérations supplémentaires
Cela vaut la peine notant que les tests d'intégration couvrent généralement moins de code que les tests unitaires en raison de la complexité des simulations et de la nature des tests à l'échelle du système. Cependant, l'approche décrite ci-dessus fournit un moyen de mesurer la couverture réelle des tests d'intégration spécifiquement pour les packages pertinents.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3