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

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

Patricia Arquette
發布: 2024-11-28 10:59:11
原創
775 人瀏覽過

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

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