2017-07-27 225 views
9

我的Android應用程序是一個多模塊項目:Android Studio中3 /科特林代碼覆蓋率

include (android-app/kotlin-android)':application', (pure kotlin)':presentation', (pure kotlin)':domain', (android-library/kotin-android)':dataproviders' 

我使用JUnit /對的Mockito測試和我有問題與生成的代碼覆蓋率科特林機器人模塊code coverage report 測試線是針對Android工作室可見。

在ui.viewmodel包測試類:

tested lines for kotlin-android module

但是,對於純科特林(如域,演示)測試覆蓋工作正常: code coverage report pure kotlin module

我使用Android Studio M酒店3.0金絲雀8 你可以看一下我的build.gradle文件在github上:

build.gradle

dependencies.gradle

application.build.gradle

presentation.build.gradle

實施例試驗在機器人應用模塊:

MostPopularViewModelTest

實施例試驗在純科特林模ULE:

MostPopularPresenterTest

有人可以幫助我與我的問題?我嘗試通過Jacoco生成代碼覆蓋,但它也沒有顯示代碼覆蓋率。

回答

6

解決辦法是在的build.gradle添加此此gradle這個任務模塊:

task copyTestClasses(type: Copy) { 
    from "build/tmp/kotlin-classes/debugUnitTest" 
    into "build/intermediates/classes/debug" 
} 

並運行:

gradlew copyTestClasses 

然後生成沒有問題的代碼覆蓋率報告。

+3

這似乎是報告的測試,而不是代碼覆蓋率? – Elye

+0

感謝這個提示! @Elye是正確的,你應該從「建設的/ tmp /科特林類/調試」 – Rule

+0

@Hype看看掛起的編輯,並批准它,如果你認爲有必要提高你的答案複製。 – FrankerZ