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