整合測試在確保 REST API 的可靠性和有效性方面發揮著至關重要的作用。然而,測量這些測試所實現的覆蓋範圍可能具有挑戰性。本文解決了一個常見問題:在套件邊界外部編寫整合測試時獲得準確的測試覆蓋率。
如查詢中所提到的,單獨使用 go test -cover 可能會產生 0不屬於測試包一部分的整合測試的覆蓋率結果百分比。原因在於覆蓋工具僅考慮正在測試的軟體包,而不考慮它們使用的軟體包。
解決方案在於使用 -coverpkg 指令。此選項可讓您指定要測量其覆蓋範圍的特定包,即使這些包沒有經過明確測試。例如,以下命令:
$ go test -cover -coverpkg mypackage ./src/api/...
將測量 mypackage 套件內的覆蓋率,即使測試本身是在單獨的套件中定義的。
為了說明差異,請考慮以下場景:
無-coverpkg:
$ go test -cover ./src/api/... ok /api 0.191s coverage: 71.0% of statements ok /api/mypackage 0.023s coverage: 0.7% of statements
使用-coverpkg:
$ go test -cover -coverpkg mypackage ./src/api/... ok /api 0.190s coverage: 50.8% of statements in mypackage ok /api/mypackage 0.022s coverage: 0.7% of statements in mypackage
如您所見,使用-coverpkg 時mypackage 覆蓋率顯著更高,從而更準確地表示所實現的實際覆蓋率。
透過利用 -coverpkg根據指令,開發人員可以有效地測量整合測試中使用的套件的覆蓋範圍,從而使他們能夠識別需要進行額外測試的區域。這種增強的覆蓋率報告有助於開發更強大、更可靠的軟體系統。
以上是如何衡量 Golang 中已測試套件之外的整合測試覆蓋率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!