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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-30 09:19:27528瀏覽

How Can I Capture Code Coverage from Integration Tests Against a Go Binary?

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

執行單元測試時,擷取程式碼覆蓋率非常簡單。然而,在針對二進位檔案本身的整合測試期間收集覆蓋率指標可能具有挑戰性。有沒有辦法克服這個障礙?

整合測試覆蓋率的需求

整合測試提供了比單獨的單元測試更全面的程式碼覆蓋率視圖。透過針對真實世界的輸入運行二進位文件,我們可以評估程式碼在各種條件下的行為。

挑戰

Go 覆蓋率工具只能與測試套件。這給通常不適合此框架的整合測試帶來了問題。

解決方案:Go 測試框架中的整合測試

捕捉整合測試的覆蓋率,我們需要以某種方式將它們整合到測試包中。

  1. 建立一個測試檔案:建立一個在 goroutine 中執行 main() 函數的測試檔案。
<code class="go">func TestMainApp(t *testing.T) {
    go main()
    // ... Start integration tests here
}</code>
  1. 執行整合測試:使用 exec.Cmd 在先前建立的 goroutine 以外執行整合測試。
  2. 收集覆蓋率統計資料: 最後,使用覆蓋率工具收集覆蓋率統計資料。

其他資源

有關此主題的先前討論,請參閱文章“通過外部測試進行覆蓋”,探索了一種類似的方法。

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

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