对于Android上的测试代码覆盖率,我的备选方案是什么?
我知道Android的Ant工具带有内置的Emma代码覆盖范围,但Emma的报告看起来越来越过时,无法轻松集成到其他覆盖范围报告甚至Sonar中,这主要是因为Emma缺乏详细的XML报告格式。我想要达到的是对于Android上的测试代码覆盖率,我的备选方案是什么?,android,testing,code-coverage,cobertura,emma,Android,Testing,Code Coverage,Cobertura,Emma,我知道Android的Ant工具带有内置的Emma代码覆盖范围,但Emma的报告看起来越来越过时,无法轻松集成到其他覆盖范围报告甚至Sonar中,这主要是因为Emma缺乏详细的XML报告格式。我想要达到的是 单元测试的代码覆盖率(基于Robolectric,已经使用Cobertura完成) 集成测试的代码覆盖率(基于Robotium-/emulator,目前使用Emma单独完成) 理想情况下合并代码覆盖率结果(这仅适用于Cobertura,并且需要每次测试执行中的原始*.ser文件) 发布到S
- 单元测试的代码覆盖率(基于Robolectric,已经使用Cobertura完成)
- 集成测试的代码覆盖率(基于Robotium-/emulator,目前使用Emma单独完成)
- 理想情况下合并代码覆盖率结果(这仅适用于Cobertura,并且需要每次测试执行中的原始*.ser文件)
- 发布到Sonar(目前仅在单元测试覆盖范围内完成,据我所知Sonar仅了解一种覆盖格式)
编辑:大概概括了Android代码覆盖率支持和声纳支持的现状。叹气免责声明:我是亚特兰西人 对。还有一种选择-您可以使用Atlassian Clover工具。有一个alpha版本的Clover for Android可从 您写道,您希望实现以下目标:
- 单元测试的代码覆盖率-是的,Clover支持“Run as>Android JUnit Test”以及“Run as>JUnit Test”-即不启动模拟器(但后者需要与Clover for Android手册中描述的设置稍有不同)
- 集成测试的代码覆盖率-如上所述,“运行方式>Android JUnit测试”
- 理想情况下合并代码覆盖率结果-是的,您可以合并来自多个测试运行的代码覆盖率结果;此外,您甚至可以在emulator或设备中运行应用程序并执行手动测试(原文如此!)
- 发布到Sonar-有一个可用的,但是我没有用Clover for Android测试它;可能您必须在Eclipse中运行测试,然后导出XML或HTML报告(Clover的Coverage Explorer视图中的按钮),并将这些文件推送到Sonar构建中
它易于配置,运行稳定(你不能从Clover工具中说出来)。我推出了一个github回购协议,其中包含与你在问题中提到的配置相同的配置:
- 标准android测试+emma代码覆盖率
- robolectric+cobertura代码覆盖率(顺便说一句,我认为cobertura与robolectric不兼容)
自2013年3月以来,我们还提出了一个统一的配置,将Jacoco离线仪器用于机器人分子测试和标准junit测试,并在声纳中同时显示结果。啊,这一切都很好,我稍后会尝试。虽然你真的应该在你的帖子中明确你是为Atlassian工作的…如果你正确地阅读了我最初的帖子,你会看到我已经有了基于机器人的JUnit测试,并且已经覆盖了JUnit测试…顺便说一句,sonar论坛上的帖子是我的,sonar source的evgeny也有兴趣解决更好的Android集成问题。这至少是一个开始,应该对其他人有所帮助,非常感谢!我很感兴趣地想看看谷歌是否想改变关于使用新的基于Gradle的构建进行测试的任何事情。。。路线图仍然将Emma列为CC工具:本次讨论是关于Jacoco对Android的支持可能会改变游戏:。你愿意为我们的项目捐款吗?(或者至少在我们的github回购协议的发行页面上继续谈论它?)当然,那会很酷。我只是不能保证我有时间做很多贡献。我现在正处于紧张阶段。。。我在gh的登录名是tommyd3mdi。你在。别担心,我也很忙。但是如果你有任何想法可以让这个项目更好,请继续。希望在gh上见到你。