Edu*_*ora 11 android code-coverage maven
我有一个包含各种子模块的Android Maven项目(我们称之为parent_project):my_library_project,app_using_my_library_project,test_project和extra_lib.
所以,结构将是这样的:
parent_project
* my_library_project (Android Library Project)
* app_using_my_library_project (Demo app that uses the Android Library Project)
* test_project (Project containing the tests instrumented against app_using_my_library_project)
* extra_lib
Run Code Online (Sandbox Code Playgroud)
我想要的是使用Maven为我的Android项目生成测试覆盖率(而不是Ant,我已经能够使用Ant生成代码覆盖率报告,遵循这些说明:https://wiki.jenkins-ci.org/display/ JENKINS/Building + an + Android + app +和+ test + project).
我对使用的代码覆盖工具没有强烈的偏好,但我更喜欢EMMA,因为它似乎是Android开发世界中最常见的.
我在其3.0.0-alpha-12版本中使用android-maven-plugin(http://code.google.com/p/maven-android-plugin/),我已经尝试将我的配置放入父母的pom.xml下一个:
<test>
<coverage>true</coverage>
<createreport>true</createreport>
</test>
Run Code Online (Sandbox Code Playgroud)
但这并不能产生所需的代码覆盖率报告.
所以:
如果您打算坚持使用 Maven,并且想要一个 Maven 插件来完成代码覆盖工作,我认为Cobertura是更好的选择,因为Emma稳定版的最后一个版本是 2005 年。
尽管在《Android 应用程序测试指南》(今年 6 月出版的最新一本书)中,他们讨论了 Emma 并演示了如何使用它进行测试,但我认为人们会坚持使用它,因为需要从源代码构建 Android(如果 Google 使用对于自己的OS开发来说,应该是最好的吧?)。
如果您不热衷于 Maven,我强烈建议尝试Robotium。Robotium 完全支持活动、对话框、Toast、菜单和上下文菜单。它还支持代码覆盖率(虽然目前是基于 Ant 的),有些人认为它是 Android 的领先测试平台之一。
编辑:
据Cobertura 网站介绍,它支持 Maven 1 和 Maven 2 环境中的代码覆盖率。不过,您也可以找到 Maven 3 的示例。Maven 2 和 Maven 3 的 pom 配置之间存在问题。似乎要使报告正常工作,您必须基本上将旧的报告插件移至新的maven-site-plugin的配置部分。(详情请参阅文章)。
另一种选择是尝试将Sonar与 Maven 结合使用。Sonar 嵌入了 cobertura (也可以选择嵌入EMMA),有些人表示他们已经成功报告了代码覆盖率,尽管他们在使用“独立”cobertura 插件时遇到了问题。
| 归档时间: |
|
| 查看次数: |
3871 次 |
| 最近记录: |