Wie erhalte ich Codeabdeckung durch Integrationstests für Go-Binärdateien?

Barbara Streisand
Freigeben: 2024-10-30 12:32:27
Original
181 Leute haben es durchsucht

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

Codeabdeckung aus einer Go-Binärdatei erfassen

Frage:

Wie können Codeabdeckungsmetriken ermittelt werden? erfasst werden, wenn Integrationstests für eine Go-Binärdatei ausgeführt werden?

Antwort:

Während das native Go-Coverage-Tool nur mit Unit-Tests funktioniert, ist es dennoch möglich, Coverage zu sammeln Daten für Integrationstests.

Lösung:

Um dies zu erreichen:

  1. Erstellen Sie eine Testdatei, die ausgeführt wird die main()-Funktion:

    <code class="go">func TestMainApp(t *testing.T) {
        go main()
        // Start integration tests
    }</code>
    Nach dem Login kopieren
  2. Führen Sie die Integrationstests innerhalb des main()-Tests aus:

    <code class="go">cmd := exec.Command("./mybin", "somefile1")
    cmd.Run()</code>
    Nach dem Login kopieren
  3. Abdeckungsstatistiken sammeln:

    <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>
    Nach dem Login kopieren
  4. Abdeckungsbericht erstellen:

    <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>
    Nach dem Login kopieren

Zusätzliche Referenz:

  • [Erweitern Sie die Abdeckung mit externen Tests](https://blog.golang.org/cover-external-tests)

Das obige ist der detaillierte Inhalt vonWie erhalte ich Codeabdeckung durch Integrationstests für Go-Binärdateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!