使用單獨的測試文件測試包覆蓋率
在組織包含大量測試文件的程式碼庫時,將測試與實際情況分開可能會更有利程式碼庫清晰並遵守最佳實踐。在這種情況下,測試文件可能與被測程式碼駐留在不同的套件中。
取得實際被測包的覆蓋率統計資料時會出現一個潛在的挑戰。預設情況下,測試僅覆蓋它們所在的套件。此問題源自於 Go 的方法,該方法規定程式碼和測試檔案應共存於同一個套件中。
解
幸運的是,Go 為這個困境提供了解決方案:
go test -cover -coverpkg "api_client" "api_client_tests"
透過指定「-coverpkg」標誌,您可以指示Go 測量指定套件(本例中為「api_client」)的覆蓋率),同時從單獨的套件(「api_client_tests」)執行測試。這使您可以準確地確定 API 客戶端套件的覆蓋範圍,而無需將其與測試文件合併。
替代方法
雖然使用單獨的測試包可以雖然在組織方面提供了好處,但值得注意的是,這種方法偏離了傳統的Go 組織程式碼和測試的方式。如果黑盒測試是您的主要目標,其中只有公共包 API 可供測試訪問,則可以使用替代方法:
以上是如何在 Go 中測量具有單獨測試檔案的套件的覆蓋率?的詳細內容。更多資訊請關注PHP中文網其他相關文章!