【问题标题】:How to calculate test coverage while using Robolectric如何在使用 Robolectric 时计算测试覆盖率
【发布时间】:2015-01-16 01:49:03
【问题描述】:

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

【问题讨论】:

  • 使用 RoboElectric + Cobertura/EclEmma 进行代码覆盖怎么样?
  • Slartibartfast:我们不使用蚂蚁。你有一些关于如何集成 Robo 和 Cobertura/EclEmma 的教程吗?我今天将尝试使用 JaCoCo。
  • 不幸的是,我遇到的大多数教程都使用了 ant,我认为使用 ant 对你来说不是一个坏主意。但是 JaCoCo 你可以看看这里:intellectualcramps.wordpress.com/2013/08/18/…

标签: android makefile code-coverage robolectric


【解决方案1】:

你和艾玛有关系吗?使用 RoboElectric + Cobertura 代码覆盖率怎么样? (我认为您可以将 CLI 用于上述组合)

所以选项

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

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/

更新:

将此从 cmets 移至答案部分,以向任何想查看此内容的人提供信息,因为这是一个赏金问题

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

    • 我不使用 gradle、maven 或 ant。我的构建完全基于 Make(查看 AOSP 代码库)。我将看看 cobertura,它似乎允许在没有其他任何东西的情况下从 cmd 行工作。
    【解决方案3】:

    jacoco 有时无法与 Robelectric 和 powermock runner 一起使用,您可以使用 clover 一个 atlassian 工具,它现在是开源工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-04
      • 2013-07-03
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      相关资源
      最近更新 更多