2016-10-02 69 views
6

標有inline關鍵字科特林功能,好了,在編譯期間內聯,似乎代碼覆蓋工具(如JaCoCo)不能正確計算代碼覆蓋。克服這個問題的常用方法是什麼?有沒有辦法讓測試以某種方式避免內聯步驟並直接調用被測試的方法?是否可以跳過所有內聯方法的報告生成(例如,通過Gradle任務)而不排除整個類?爲內聯科特林方法沒有覆蓋報告

回答

3

我不相信有可能關閉內聯,因爲如果某些函數沒有內聯,它們可能沒有任何意義。這些包括reified類型的函數(因爲內聯創建了類型信息的可用性)並且函數以lambda作爲參數,因爲它們可以影響它們被內聯的方法的控制流。

+0

這是我所擔心的。那麼,你知道任何可以正確計算內聯函數的代碼覆蓋率的工具嗎?我正在維護一個庫,其中一個模塊主要由類型安全的構建者組成,並且經過廣泛的單元測試 - 報告的代碼覆蓋百分比相當差。 – JustACluelessNewbie