Android Studio 3 / Kotlin代码覆盖
我的Android应用程序是多模块项目:
include (android-app/kotlin-android)':application', (pure kotlin)':presentation', (pure kotlin)':domain', (android-library/kotin-android)':dataproviders'
我正在使用Junit / Mockito进行测试,并且只有为kotlin android模块生成代码覆盖的问题。 经过测试的行对于android studio是可见的。
在ui.viewmodel包中测试类:
但是,对于纯粹的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生成代码覆盖,但它也没有显示代码覆盖率。
解决方法是将这个gradle任务添加到build.gradle模块中:
task copyTestClasses(type: Copy) { from "build/tmp/kotlin-classes/debugUnitTest" into "build/intermediates/classes/debug" }
并运行:
gradlew copyTestClasses
然后生成没有问题的代码覆盖报告。