我正在将一个相当大且复杂的遗留项目迁移到 Gradle。 我有很多图书馆项目,每个项目都有自己的测试子项目。 项目结构如下:
- LibraryX
-- LibraryXTestsOne
-- LibraryXTestsTwo
- LibraryY
-- LibraryYTests
....
每个库配置如下:
- 主源集包含所有库代码
- androidTest 源集是空的
每个测试项目配置如下:
- 它将父库列为依赖项
- 主源集是空的
- androidTest 源集包含所有测试代码
有了这样的配置,我设法用 :libraryTestsA:connectedAndroidTest 运行测试,但我无法让测试覆盖率起作用。我通过启用它
buildTypes{
debug{ testCoverageEnabled true }
}
显然,父库的类未进行检测,导致代码覆盖率为零。
有什么建议吗?
最佳答案
原来只需要将测试项目依赖的所有项目/库的testCoverageEnabled
设置为true
即可。
这足以检测您的代码。
你仍然需要创建一个自定义的 jacocoReport 任务,因为 android 插件提供的任务在项目主源集中查找类和源,它们在像我这样的配置中是空的。
关于android - Gradle Android - 遗留测试项目结构的测试覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627452/