首頁 >後端開發 >Golang >如何在我的 Go 覆蓋率報告中包含外部套件呼叫?

如何在我的 Go 覆蓋率報告中包含外部套件呼叫?

Linda Hamilton
Linda Hamilton原創
2024-12-01 10:27:10858瀏覽

How Can I Include External Package Calls in My Go Coverage Report?

在Go 覆蓋範圍中包含包呼叫

問題:

問題:

在一個項目在中多包結構中,目前測試包之外的包中的某些功能將被覆蓋率報告忽略。具體來說,位於 db 套件中的 bar.go 中的函數儘管是從 api 套件中的 foo.go 調用的,但並未顯示任何覆蓋範圍。

解決方案:

至解決這個問題,應該將 -coverpkg 標誌加入 go test 指令中。 -coverpkg 標誌指定覆蓋率報告包含哪些套件。

說明:

go test -coverpkg=./... coverprofile=coverage.out ./...
預設情況下,覆蓋率報告僅包含測試直接導入的包包裹。在這種情況下,foo_test.go(foo.go的測試包)不會直接匯入db,因此bar.go中的函數不會被覆寫。

新增-coverpkg標誌明確包含指定的套件在覆蓋率分析中。在這種情況下,以下命令將在覆蓋率報告中包含目前目錄(./...) 中的所有套件:

這將產生一個覆蓋率報告,其中包括對bar的函數呼叫。來自 foo.go。

注意:使用 -coverpkg 標誌可能會影響測試執行時間,因為它需要分析大量的套件。但跨包函數呼叫需要取得準確的覆蓋率資訊。

以上是如何在我的 Go 覆蓋率報告中包含外部套件呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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