在單獨的測試包中測試覆蓋率
當出於組織目的將測試文件分成不同的包時,獲取目標代碼的覆蓋率統計資訊可以成為一個挑戰。這個問題探討了這種情況的解決方法,其中測試包位於 api_client_tests 中,程式碼位於 api_client 中。
問題:
如何準確覆蓋率統計當相關測試位於單獨的包中時,是否為正在測試的 api_client 包獲取?
解決方案:
提供的解決方案涉及使用 go test 命令和-cover 和 -coverpkg 標誌。透過使用 -coverpkg 標誌指定 api_client 套件作為覆蓋目標:
go test -cover -coverpkg "api_client" "api_client_tests"
將專門為 api_client 套件中的程式碼產生覆蓋率統計信息,即使測試位於外部 api_client_tests 中。
替代方法:
雖然上述方法是一個可行的解決方案,但它偏離了典型的Go 約定,即將測試文件與代碼保存在同一個包中。測試。這可能會導致調試和協作困難。
另一種方法,如評論中提到的,是將測試文件簡單地移動到與被測程式碼相同的套件中。這可確保與特定功能或元件相關的所有程式碼都分組在一起,以便於維護。
以上是當測試位於單獨的套件中時,如何取得套件的準確覆蓋率統計資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!