Maison >développement back-end >Golang >Comment puis-je capturer la couverture du code des tests d'intégration par rapport à un binaire Go ?

Comment puis-je capturer la couverture du code des tests d'intégration par rapport à un binaire Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 09:19:27527parcourir

How Can I Capture Code Coverage from Integration Tests Against a Go Binary?

Capturer la couverture de code à partir d'un binaire Go

Lors de l'exécution de tests unitaires, la capture de la couverture de code est simple. Cependant, la collecte de mesures de couverture lors des tests d'intégration par rapport au binaire lui-même peut s'avérer difficile. Existe-t-il un moyen de surmonter cet obstacle ?

Le besoin d'une couverture des tests d'intégration

Les tests d'intégration fournissent une vue plus complète de la couverture du code que les tests unitaires seuls. En exécutant le binaire avec des entrées du monde réel, nous pouvons évaluer le comportement de notre code dans diverses conditions.

Le défi

L'outil de couverture Go fonctionne uniquement en conjonction avec le package de tests. Cela pose un problème pour les tests d'intégration qui ne rentrent généralement pas dans ce cadre.

La solution : tests d'intégration dans le cadre de tests de Go

Pour capturer la couverture des tests d'intégration , nous devons les intégrer d'une manière ou d'une autre dans le package de test.

  1. Créez un fichier de test : Créez un fichier de test qui exécute votre fonction main() dans une goroutine.
<code class="go">func TestMainApp(t *testing.T) {
    go main()
    // ... Start integration tests here
}</code>
  1. Exécuter les tests d'intégration : Utilisez exec.Cmd pour exécuter vos tests d'intégration en dehors de la goroutine créée précédemment.
  2. Collectez des statistiques de couverture : Enfin, rassemblez les statistiques de couverture à l'aide de l'outil de couverture.

Autres ressources

Pour une discussion précédente sur ce sujet, reportez-vous à l'article " Allez couverture avec des tests externes", qui explore une approche comparable.

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