首頁  >  文章  >  後端開發  >  如何從 Go 二進位檔案的整合測試中取得程式碼覆蓋率?

如何從 Go 二進位檔案的整合測試中取得程式碼覆蓋率?

Barbara Streisand
Barbara Streisand原創
2024-10-30 12:32:27165瀏覽

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

從Go 二進位檔案擷取程式碼覆蓋率

問題:

問題:

代碼覆蓋率如何針對Go 二進位檔案執行整合測試時會被擷取嗎?

答案:

雖然原生 Go 覆蓋率工具僅適用於單元測試,但仍可收集覆蓋率用於整合測試的資料。

解決方案:
  1. 要實現此目的:

    <code class="go">func TestMainApp(t *testing.T) {
        go main()
        // Start integration tests
    }</code>
  2. 建立一個執行的測試檔案()函數:
  3. <code class="go">cmd := exec.Command("./mybin", "somefile1")
    cmd.Run()</code>
  4. 從main() 測試中執行整合測試:
  5. >

    <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>
  6. 收集覆蓋率統計:
  7. <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>
  8. 產生覆蓋率報告:

  • 其他參考:
[透過外部測試覆蓋](https://blog.golang.org/cover-external-tests)

以上是如何從 Go 二進位檔案的整合測試中取得程式碼覆蓋率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn