如何在使用 Robolectric 时计算测试覆盖率
How to calculate test coverage while using Robolectric
我正在使用 make
进行构建,Robolectric
作为 运行 Android 测试的框架。我想计算我的应用程序的覆盖率。对于仪器测试,我曾经使用 emmalib
。在这种情况下,我设置覆盖率计算的最佳方法是什么?我无法迁移到 gradle 或 maven。
你和艾玛绑定了吗?使用 RoboElectric + Cobertura 代码覆盖率怎么样? (我认为您可以对上述组合使用 CLI)
所以选项
1.) RoboElectric + Cobertura - 单独的 CLI 可能适用于不使用 ANT 的人
2.) JaCoCo 可能有一些有用的选项
3.) 纯 Android 测试 + Emma/EclEmma
有用的 Link 路径
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/
更新:
将此从评论移至答案部分,以供任何想查看此内容的人参考,因为这是一个赏金问题
一种解决方案是使用 Cobertura 生成代码覆盖率,它可以集成到 eclipse 中,也可以通过 ant 构建脚本 运行。
可在此处找到此类集成的模板项目:https://github.com/adgllorente/android-cobertura-boilerplate
请注意,所有神奇的事情都发生在测试项目的 build.xml 中。这些任务可能应该概括为一个 custom_rules.xml
文件,这样您仍然可以使用 android
来更新您的项目。
最后,对于 Gradle 你有很多不同的选择:
- http://raptordigital.blogspot.nl/2014/08/code-coverage-reports-using-robolectric.html
- http://chrisjenx.com/gradle-robolectric-jacoco-dagger/
请注意,您始终可以使用 Gradle 作为辅助构建系统来生成覆盖率报告。 (但是第二个构建系统会引入很多开销)
jacoco 有时无法与 Robelectric 和 powermock runner 一起使用,您可以使用 clover 和 atlassian 工具,它现在是开源工具。
我正在使用 make
进行构建,Robolectric
作为 运行 Android 测试的框架。我想计算我的应用程序的覆盖率。对于仪器测试,我曾经使用 emmalib
。在这种情况下,我设置覆盖率计算的最佳方法是什么?我无法迁移到 gradle 或 maven。
你和艾玛绑定了吗?使用 RoboElectric + Cobertura 代码覆盖率怎么样? (我认为您可以对上述组合使用 CLI)
所以选项
1.) RoboElectric + Cobertura - 单独的 CLI 可能适用于不使用 ANT 的人
2.) JaCoCo 可能有一些有用的选项
3.) 纯 Android 测试 + Emma/EclEmma
有用的 Link 路径
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/
更新:
将此从评论移至答案部分,以供任何想查看此内容的人参考,因为这是一个赏金问题
一种解决方案是使用 Cobertura 生成代码覆盖率,它可以集成到 eclipse 中,也可以通过 ant 构建脚本 运行。
可在此处找到此类集成的模板项目:https://github.com/adgllorente/android-cobertura-boilerplate
请注意,所有神奇的事情都发生在测试项目的 build.xml 中。这些任务可能应该概括为一个 custom_rules.xml
文件,这样您仍然可以使用 android
来更新您的项目。
最后,对于 Gradle 你有很多不同的选择:
- http://raptordigital.blogspot.nl/2014/08/code-coverage-reports-using-robolectric.html
- http://chrisjenx.com/gradle-robolectric-jacoco-dagger/
请注意,您始终可以使用 Gradle 作为辅助构建系统来生成覆盖率报告。 (但是第二个构建系统会引入很多开销)
jacoco 有时无法与 Robelectric 和 powermock runner 一起使用,您可以使用 clover 和 atlassian 工具,它现在是开源工具。