如何在使用Robolectric时计算测试覆盖率

时间:2015-01-16 01:49:04

标签: android makefile code-coverage robolectric

我正在使用make进行构建,并使用Robolectric作为运行Android测试的框架。我想计算我的应用程序的覆盖范围。对于仪器测试,我曾经使用过emmalib。在这种情况下,我设置覆盖率计算的最佳方法是什么?我无法迁移到gradle或maven。

3 个答案:

答案 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

Android Gradle Code Coverage

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工具它现在是开源工具。