確定Golang 整合測試的測試覆蓋率
當測試位於服務外部時,測量Golang 中整合測試的測試覆蓋率可能會帶來挑戰已測試。在沒有適當指示的情況下使用 go test -cover 可能會導致覆蓋率統計不準確。
解決方案:利用-coverpkg 指令
-coverpkg 指令透過允許解決此問題您可以指定要測量覆蓋率的包,無論測試是否是該包的一部分。以下是一個測量 mypackage 套件覆蓋率的範例:
$ go test -cover -coverpkg mypackage ./src/api/...
此命令將專門提供 mypackage 套件的覆蓋率統計信息,不包括使用它但不屬於它的一部分的測試。
比較覆蓋率報告
透過比較使用和不使用-coverpkg 指令產生的覆蓋率報告,您可以評估透過對目標套件進行整合測試實現的實際覆蓋率。
示例:
不使用-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 套件減少到50.8%,這表示整合測試沒有完全覆蓋目標包的程式碼。這些資訊可以引導您進一步增強整合測試,以實現更全面的覆蓋。
以上是如何準確衡量外部套件的Golang整合測試覆蓋率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!