android - Gradle Android - 遗留测试项目结构的测试覆盖率

标签 android gradle jacoco

我正在将一个相当大且复杂的遗留项目迁移到 Gradle。 我有很多图书馆项目,每个项目都有自己的测试子项目。 项目结构如下:

- LibraryX
-- LibraryXTestsOne
-- LibraryXTestsTwo
- LibraryY
-- LibraryYTests 
....

每个库配置如下:

  1. 主源集包含所有库代码
  2. androidTest 源集是空的

每个测试项目配置如下:

  1. 它将父库列为依赖项
  2. 主源集是空的
  3. androidTest 源集包含所有测试代码

有了这样的配置,我设法用 :libraryTestsA:connectedAndroidTest 运行测试,但我无法让测试覆盖率起作用。我通过启用它

buildTypes{
   debug{ testCoverageEnabled true }
}

显然,父库的类未进行检测,导致代码覆盖率为零。

有什么建议吗?

最佳答案

原来只需要将测试项目依赖的所有项目/库的testCoverageEnabled设置为true即可。 这足以检测您的代码。

你仍然需要创建一个自定义的 jacocoReport 任务,因为 android 插件提供的任务在项目主源集中查找类和源,它们在像我这样的配置中是空的。

关于android - Gradle Android - 遗留测试项目结构的测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627452/

相关文章:

java - Eclipse 的 Gradle 集成不断更改 .classpath 文件

android - 无法编译我的android项目

java - Android:ExpandableListViews 和复选框

android - 如何保持 IM 线程在 android 上运行?

android - 不要在 onBackPressed 上调用 onDestroy

gradle - gradle是否在版本中支持逗号以指定多个范围?

android - Android 上的 Mapbox 无法添加源异常

java - 如何指定 Maven 目标的参数值

java - 如何在现有项目中激活 GitLab Pages?

java - 与主分支同步时,Sonarcloud 中不显示分支覆盖范围