首頁 > 後端開發 > Golang > 主體

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

Barbara Streisand
發布: 2024-10-30 12:32:27
原創
233 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板