Maison > développement back-end > Golang > Comment obtenir la couverture du code à partir des tests d'intégration pour les binaires Go ?

Comment obtenir la couverture du code à partir des tests d'intégration pour les binaires Go ?

Barbara Streisand
Libérer: 2024-10-30 12:32:27
original
290 Les gens l'ont consulté

How to Get Code Coverage from Integration Tests for Go Binaries?

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

Question :

Comment les métriques de couverture du code peuvent-elles être être capturé lors de l'exécution de tests d'intégration sur un binaire Go ?

Réponse :

Bien que l'outil de couverture Go natif ne fonctionne qu'avec des tests unitaires, il est toujours possible d'obtenir une couverture données pour les tests d'intégration.

Solution :

Pour y parvenir :

  1. Créez un fichier de test qui exécute la fonction main() :

    <code class="go">func TestMainApp(t *testing.T) {
        go main()
        // Start integration tests
    }</code>
    Copier après la connexion
  2. Exécutez les tests d'intégration à partir du test main() :

    <code class="go">cmd := exec.Command("./mybin", "somefile1")
    cmd.Run()</code>
    Copier après la connexion
  3. Collecter les statistiques de couverture :

    <code class="go">coverProfile := "coverage.out"
    test.RunMain()
    if err := testing.StartCoverage(coverProfile); err != nil {
        log.Fatalf("Coverage: %v", err)
    }
    defer testing.StopCoverage(coverProfile)</code>
    Copier après la connexion
  4. Générer le rapport de couverture :

    <code class="go">if err := testing.RunTests(); err != nil {
        log.Fatalf("Coverage: %v", err)
    }
    cmd := exec.Command("go", "tool", "cover", "-html=coverage.out")
    cmd.Run()</code>
    Copier après la connexion

Référence supplémentaire :

  • [Aller à la couverture avec des tests externes](https://blog.golang.org/cover-external-tests)

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal