Android Studio 3/Kotlin代码覆盖率

Hyp*_*ype 9 junit android unit-testing code-coverage kotlin

我的Android应用程序是多模块项目:

include (android-app/kotlin-android)':application', (pure kotlin)':presentation', (pure kotlin)':domain', (android-library/kotin-android)':dataproviders'
Run Code Online (Sandbox Code Playgroud)

我正在使用Junit/Mockito进行测试,我遇到的问题只是为kotlin android模块生成代码覆盖率. 代码覆盖率报告 Android studio可以看到经过测试的行.

ui.viewmodel包中的测试类:

测试了kotlin-android模块的行

但是,对于纯kotlin(例如域,演示)测试覆盖率工作正常: 代码覆盖率报告纯kotlin模块

我正在使用Android Studio 3.0 Canary 8您可以在github上查看我的build.gradle文件:

的build.gradle

dependencies.gradle

application.build.gradle

presentation.build.gradle

android应用程序模块中的示例测试:

MostPopularViewModelTest

纯kotlin模块中的示例测试:

MostPopularPresenterTest

有人可以帮助我解决我的问题吗?我尝试通过Jacoco生成代码覆盖,但它也没有显示代码覆盖率.

Hyp*_*ype 8

解决方案是在build.gradle for module中添加此gradle任务:

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

并运行:

gradlew copyTestClasses
Run Code Online (Sandbox Code Playgroud)

然后生成代码覆盖率报告没有问题.

  • 这似乎报告测试而不是代码覆盖? (3认同)