首頁 >後端開發 >Golang >當原始檔案和測試檔案位於不同的資料夾時,如何實現準確的Go程式碼覆蓋率?

當原始檔案和測試檔案位於不同的資料夾時,如何實現準確的Go程式碼覆蓋率?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-30 05:06:10544瀏覽

How Can I Achieve Accurate Go Code Coverage When Source and Test Files Are in Separate Folders?

Go 中分隔資料夾的程式碼覆蓋率偵測

測試Go 程式碼時,確保足夠的程式碼覆蓋率以驗證測試有效性非常重要。但是,如果您的專案結構將原始程式碼和測試檔案分離到不同的資料夾中,則在獲取準確的程式碼覆蓋率資訊時可能會遇到問題。

在這種情況下,您的專案結構包括stuff/stuff.go 和test/ stuff/stuff_test.go 屬於不同的套件(分別是stuff 和test),測試執行可能無法報告覆蓋率stuff .go.

解決方案

要解決此問題,您可以在執行go test 時利用 -coverpkg 標誌。此標誌可讓您指定要記錄其覆蓋範圍資訊的包。使用此標誌,您可以確保測試執行包含所需的套件,並準確地報告原始程式碼的程式碼覆蓋率。

例如,要分析內容和測試包的覆蓋率:

go test -coverpkg=./... ./test/...

查看覆蓋率報告

使用適當的-coverpkg 標誌執行測試後,您可以使用go tool cover 產生覆蓋率報告。該工具將創建一個 HTML 報告,可視化覆蓋率信息,使您能夠識別程式碼中任何未覆蓋的行。

要產生報告:

go tool cover -html=cover.out

透過使用-coverpkg 標誌,您可以確保測試執行準確追蹤單獨資料夾的程式碼覆蓋率,從而為應用程式的覆蓋率提供有價值的見解。

以上是當原始檔案和測試檔案位於不同的資料夾時,如何實現準確的Go程式碼覆蓋率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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