我是一名Android开发人员,但对自己的测试以及持续集成环境和配置不满意。

有人会建议我如何为Android中良好的CI配置最佳设置和工作流程?

其中包括:



自动化构建工具:Maven,Ant,Graddle ...
测试工具和库

测试配置:在哪里放置单元测试,集成测试...
测试覆盖范围
连续集成服务器

其他QA工具及其配置:FindBugs,PMD ...
一般的工作流程

使用CI的Android应用程序的任何建议,建议或示例都非常感谢!

编辑:我将解释我目前的环境如何以及哪些事情不能完全说服我。无论如何,如果您认为与它完全不同的东西更好,请毫不犹豫地说。



自动化构建工具:我同时使用Maven和Ant 。我的第一个想法是仅使用Maven(我喜欢它使项目变得干净和结构化),但是看到Ant是Android团队使用的自动化构建工具,并且我无法使用Maven实现某些功能,因此还添加了Ant。
稍​​后会有更多信息。

原型类型:我使用Maven Android原型android-release-archetype来创建我的项目,并修改结果以包括我正在开发的Android库项目。因此,我有一个带有三个子模块的Maven父项目:Android库项目,Android标准应用程序和Android测试项目(包含Android应用程序)。

测试工具和库:标准JUnit,Android Instrumentation,Robolectric和Robotium。

测试配置:我的Android测试项目中有使用Instrumentation和Robotium进行的测试,而我正在测试代码的同一项目中具有JUnit和Robolectric测试。这样做的原因是我无法让Robolectric在另一个项目中测试代码,但我更希望在Android Test Project中进行所有测试(我不知道这是一个好主意,但在我看来) 。另外,我仍然不知道(我没有时间去寻找它)如何告诉Maven或Ant执行测试的子集。


测试范围:我无法使用Maven生成测试覆盖率报告,这就是我最终还添加了Ant的原因(您可以按照以下说明使用Ant获得测试覆盖率:构建Android应用程序和测试项目)。
< br Continuous Integration服务器:Jenkins和Android Emulator插件(尽管我认为它在最新版本的SDK中存在一些问题)。

其他质量检查工具及其配置:我没有看过

常规工作流程:Jenkins每5分钟轮询一次项目中的更改,并在发现任何内容时构建所有内容。此外,无论如何,我都有每晚的建筑物。关于我的开发工作流程,我只是每天不时地并且总是在提交之前运行所有测试。我觉得不太理想,因为设备(Instrumenation和Robotium)中的测试需要很长时间,因此我宁愿只在开发时运行无设备测试,而在提交之前全部运行。 />欢迎所有建议和改进!

评论

让我们先告诉我们您今天使用什么,以及为什么您不满意。

我不想说那是因为我不想影响人们的答案:P但是看到我没有很多答案,我会将其添加到我的问题中,所以人们可以从中得到一些帮助。

#1 楼

在软件测试俱乐部上发布的类似问题

机器人似乎可以满足您的某些需求? (对Stephen Janaway的支持)

评论


链接似乎已断开。知道在其他地方可以找到讨论吗?

– Walid Mujahidوليدمجاهد
18年5月15日在19:28