make
进行构建,并使用Robolectric
作为运行Android测试的框架。我想计算我的应用程序的覆盖率。对于仪器测试,我过去常常使用emmalib
。在这种情况下,设置覆盖率计算的最佳方式是什么?我无法迁移到gradle或maven。make
进行构建,并使用Robolectric
作为运行Android测试的框架。我想计算我的应用程序的覆盖率。对于仪器测试,我过去常常使用emmalib
。在这种情况下,设置覆盖率计算的最佳方式是什么?我无法迁移到gradle或maven。你是否受限于Emma?使用RoboElectric + Cobertura代码覆盖率如何?(我认为你可以只使用CLI进行上述组合)
因此,有以下选项:
1.) RoboElectric + Cobertura - 仅CLI可能适用于不在ANT上的人
2.) JaCoCo可能有一些有用的选项
3.) 纯Android测试+ Emma / EclEmma
要跟进的有用链接
通过build.xml和ant.properties中的更改生成Android代码覆盖率
https://intellectualcramps.wordpress.com/2013/08/18/code-coverage-of-robolectric-tests-using-jacoco/
https://bitbucket.org/ravidsrk/androidstarter
编辑:
很遗憾,我所找到的大多数教程都使用了 Ant,但我认为您转换到像 Gradle 这样的推荐构建系统将会打开很多选项。但是对于 JaCoCo,您可以在这里查看:https://intellectualcramps.wordpress.com/2013/08/18/code-coverage-of-robolectric-tests-using-jacoco/
更新:
将此从评论移动到答案部分,供任何想要查看此信息的人参考,因为这是一个悬赏问题。
一种解决方案是使用 Cobertura 生成代码覆盖率报告,可以集成在eclipse中,并通过ant构建脚本运行。
可以在这里找到此类集成的模板项目: https://github.com/adgllorente/android-cobertura-boilerplate
请注意,所有的魔法都发生在测试项目的 build.xml 中。这些任务可能应该被概括为一个 custom_rules.xml
文件,以便您仍然可以使用 android
更新您的项目。
最后,对于Gradle,您有许多不同的选择:
请注意,您始终可以将Gradle用作辅助构建系统,仅用于生成覆盖率报告。(但是第二个构建系统会引入很多开销)有时候Jacoco无法与Robelectric和PowerMock Runner一起使用,您可以使用Clover和Atlassian工具。这是一个现在开源的工具,可以涵盖测试。