我正在使用make
进行构建,并使用Robolectric
作为运行Android测试的框架。我想计算我的应用程序的覆盖范围。对于仪器测试,我曾经使用过emmalib
。在这种情况下,我设置覆盖率计算的最佳方法是什么?我无法迁移到gradle或maven。
答案 0 :(得分:4)
你和艾玛一样吗?如何使用RoboElectric + Cobertura代码覆盖? (我认为您可以使用CLI进行上述组合)
所以选项
1。)RoboElectric + Cobertura - 仅对于不在ANT上的人可能是CLI。
2。)JaCoCo可能有一些有用的选择
3。)纯Android测试+ Emma / EclEmma
有用的链接跟踪
Generating android code coverage though changes in build.xml and ant.properties
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/
<强>更新强>
将此内容从评论移至答案部分,以便向想要查看此内容的任何人发送信息,因为这是一个赏金问题
答案 1 :(得分:1)
一种解决方案是使用Cobertura生成代码覆盖,可以在eclipse中集成,也可以由ant构建脚本运行。
可以在此处找到此类集成的模板项目:https://github.com/adgllorente/android-cobertura-boilerplate
请注意,所有魔法都发生在Test项目的build.xml中。这些任务应该可以推广到custom_rules.xml
文件,这样您仍然可以使用android
来更新项目。
最后,对于Gradle,您有许多不同的选择:
请注意,您始终可以将Gradle用作辅助构建系统,以生成覆盖率报告。 (但是第二个构建系统会引入很多开销)
答案 2 :(得分:1)
jacoco有时不能与Robelectric和powermock跑步者一起使用,你可以使用三叶草和atlassian工具它现在是开源工具。