首頁 > 後端開發 > Golang > 為什麼 Go 覆蓋範圍不包括外部包中的函數?

為什麼 Go 覆蓋範圍不包括外部包中的函數?

Barbara Streisand
發布: 2024-11-29 06:46:10
原創
432 人瀏覽過

Why Does Go Coverage Exclude Functions in External Packages?

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

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