首頁 >後端開發 >Golang >儘管在單獨的資料夾中成功執行了測試,為什麼我的 Go 程式碼覆蓋率顯示為 0%?

儘管在單獨的資料夾中成功執行了測試,為什麼我的 Go 程式碼覆蓋率顯示為 0%?

Patricia Arquette
Patricia Arquette原創
2024-11-28 10:59:11753瀏覽

Why Is My Go Code Coverage Showing 0% Despite Successful Test Execution in Separate Folders?

解決GO 專案單獨資料夾中的程式碼覆蓋率差異

在處理具有特定結構的專案時,其中套件及其測試位於單獨的資料夾中,您遇到了問題。儘管執行了 stuff_test.go 中的 stuff.go 中的程式碼,但覆蓋率報告顯示為 0.0%。

可能的原因和解決方案

問題的出現​​是由於 GO 的預設覆蓋率分析行為,僅適用於正在測試的套件。為了克服這個問題,可以使用 -coverpkg 標誌來指定應收集覆蓋率資料的套件。

透過使用 -coverpkg 選項,您可以指定 test/stuff/stuff_test.go 中的測試應該也要考慮 stuff/stuff.go 的程式碼覆蓋率。這可確保覆蓋率分析涵蓋所有相關套件。

這是一個範例命令,演示了 -coverpkg 的用法:

go test ./test/... -coverpkg ./...

此命令在與測試路徑匹配的包中運行測試,並包括所有匹配./....

查看覆蓋範圍的套件的覆蓋範圍資訊報告

執行測試後,您可以使用以下命令產生並查看覆蓋率報告:

go tool cover -html=cover.out

此命令產生名為cover.out 的HTML 覆蓋率報告,可以在網頁瀏覽器中開啟它以視覺化覆寫資料。

以上是儘管在單獨的資料夾中成功執行了測試,為什麼我的 Go 程式碼覆蓋率顯示為 0%?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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