Go 覆蓋率排除外部套件中的函數
在包含多個套件的Go 專案上執行程式碼覆蓋率時,可能會遇到函數除被測包之外的其他套件中的內容不包含在覆蓋率報告中。當一個包中的函數呼叫另一個包中的函數時,可能會發生這種情況。
問題:
如所提供的問題中所述,具有類似包結構的項目以下展示了這個問題:
app/ api/ foo.go test_foo.go src/ db/ bar.go
foo.go 呼叫bar.go 中的函數。但是,bar.go 的覆蓋率報告顯示覆蓋了零行。
解決方案:
要解決此問題,您需要在運行覆蓋率時包含 coverpkg 標誌測試。此標誌指定應收集所有包的覆蓋範圍,無論其位置如何。修改後的運行覆蓋率測試的命令是:
go test -coverpkg=./... coverprofile=coverage.out ./...
透過添加 coverpkg 標誌,覆蓋率報告現在將包含從 foo.go 到 bar.go 的函數呼叫。
以上是為什麼 Go 覆蓋範圍不包括外部包中的函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!