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:
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>
Führen Sie die Integrationstests innerhalb des main()-Tests aus:
<code class="go">cmd := exec.Command("./mybin", "somefile1") cmd.Run()</code>
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>
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>
Zusätzliche Referenz:
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!