我在Android上测试代码覆盖的替代方案是什么?

Tho*_*ler 7 testing android code-coverage emma cobertura

我知道Android的Ant工具带有内置的Emma代码覆盖,但Emma的报告看起来越来越过时,无法轻松集成到其他报告甚至Sonar中,主要是因为Emma缺乏详细的XML报告格式.我想要实现的是

  • 单元测试的代码覆盖率(基于Robolectric,已经使用Cobertura完成)
  • 集成测试的代码覆盖率(基于Robotium-/emulator,目前与Emma分开完成)
  • 理想情况下合并代码覆盖率结果(这是恕我直言,只有Cobertura才可能,并且需要每次测试执行的原始*.ser文件)
  • 发布到Sonar(目前仅通过单元测试覆盖,Sonar只了解一种覆盖格式)

我还有其他选择吗?

编辑: 关于so​​nar-devel的这篇文章可能总结了Android代码覆盖支持的当前状态以及Sonar支持.

Sni*_*las 6

我已经推送了一个包含你在问题中提到的相同配置的github仓库:

  • 标准的android测试+ emma代码覆盖率
  • robolectric + cobertura代码覆盖率(顺便说一句,我认为cobertura与robolectric不兼容)

并将它们包含在声纳中.一次只有一个,但配置仍然是一个有趣的工作基础.

https://github.com/stephanenicolas/Quality-Tools-for-Android

我和一位同事一心想要以与你一样非常相似的心态来处理这个问题.我们希望更好地集成不同的测试技术,以便Android项目和报告在声纳中工作.

如果您想加入我们的努力,我们很乐意为您提供回购权并开始与您合作.

斯特凡

- 更新

自2013年3月起,我们还提出统一配置,使用Jacoco离线仪器进行robolectric和标准junit测试,并在Sonar中同时显示结果.