2017-07-27 240 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