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

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

这个有帮助吗?:http://stackoverflow.com/questions/13466482/generating-android-code-coverage-though-changes-in-build-xml-and-ant-properties - Vrashabh Irde
使用RoboElectric + Cobertura/EclEmma进行代码覆盖率如何? - Vrashabh Irde
Slartibartfast:我们不使用Ant。你有没有一些关于如何集成Robo和Cobertura/EclEmma的教程?我今天将尝试使用JaCoCo。 - gruszczy
大多数我遇到的教程都使用了Ant,不幸的是,我认为你使用Ant并不是一个坏主意。但是,你可以在这里看一下JaCoCo:https://intellectualcramps.wordpress.com/2013/08/18/code-coverage-of-robolectric-tests-using-jacoco/ - Vrashabh Irde
3个回答

4

你是否受限于Emma?使用RoboElectric + Cobertura代码覆盖率如何?(我认为你可以只使用CLI进行上述组合)

因此,有以下选项:

1.) RoboElectric + Cobertura - 仅CLI可能适用于不在ANT上的人

2.) JaCoCo可能有一些有用的选项

3.) 纯Android测试+ Emma / EclEmma

要跟进的有用链接

通过build.xml和ant.properties中的更改生成Android代码覆盖率

Android Gradle代码覆盖率

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

一种解决方案是使用 Cobertura 生成代码覆盖率报告,可以集成在eclipse中,并通过ant构建脚本运行。

可以在这里找到此类集成的模板项目: https://github.com/adgllorente/android-cobertura-boilerplate

请注意,所有的魔法都发生在测试项目的 build.xml 中。这些任务可能应该被概括为一个 custom_rules.xml 文件,以便您仍然可以使用 android 更新您的项目。

最后,对于Gradle,您有许多不同的选择:

请注意,您始终可以将Gradle用作辅助构建系统,仅用于生成覆盖率报告。(但是第二个构建系统会引入很多开销)

我不使用gradle、maven或ant。我的构建纯粹基于Make(请查看AOSP代码库)。我会看一下cobertura,它似乎允许在命令行上工作而无需其他任何东西。 - gruszczy

1

有时候Jacoco无法与Robelectric和PowerMock Runner一起使用,您可以使用Clover和Atlassian工具。这是一个现在开源的工具,可以涵盖测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接