2015-06-03 80 views
3

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

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

每个库的配置如下:

  1. 主要sourceset包含了所有的库代码
  2. 的androidTest sourceset是空

每个测试项目配置如下:

  1. 它列出父库作为依赖
  2. 主要sourceset是空
  3. 的androidTest sourceset包含了所有的测试代码

通过这样的配置我管理运行与测试:libraryTestsA: connectedAndroidTest,但我无法获得测试覆盖范围的工作。我通过它启用它

buildTypes{ 
    debug{ testCoverageEnabled true } 
} 

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

有什么建议吗?

回答

0

事实证明,您只需将testCoverageEnabled设置为true就可以测试项目所依赖的所有项目/库。 这将足以测试你的代码。

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