2011-04-22 39 views
17

我们的团队对于Android和Java开发(原来,我们来自C++)都是新手,因此我们关于构建java工具的知识很浅。通过TeamCity持续集成Android。首选工具?

有几个可用于构建自动化的构建工具,而我发现的最有趣的是ant和maven。虽然有很多关于构建自动化的文章,但我没有找到有关自动化Android应用程序集成过程的全面教程。

我会很感激,如果你能说出你的最好的构建工具为Android 解释或给予解释持续集成的Android应用程序(过程中的任何环节,其不仅涵盖构建应用程序包,但在运行测试仿真器)。

非常感谢您的时间和协助。

P.S .:我们使用Team City作为持续集成服务器。

回答

7

我们使用以下建设我们的持续集成平台的Android:

的Maven - 用于管理构建/单元测试/集成测试/部署周期 哈德森 - 持续集成

团队市也将运行Maven项目 - 配置TeamCity代理来运行特定的Maven目标非常简单,例如mvn integration-test - 代理可以在PC上用Android模拟器或

插在过去的我已经有针对不同硬件的TeamCity代理测试的全行真正的Android设备上运行。例如,如果您将5个Android设备插入代理,则可以配置TeamCity构建管道以在ALL 5设备上运行集成测试(通过Maven轻松控制),并且只在全部传递5时声明PASS。

+0

谢谢你的回答。是的,使用maven-android-plugin的Maven已经成功地解决了这个问题。另外,TeamCity可以无缝集成它。不过,我想知道你是否可以告诉我,是否有任何方法可以提取任何安装了测试工具的日志(在仿真器下运行)? – 2011-05-12 06:25:32

+0

可以使用“adb logcat”命令访问Android日志 - 可以传递给它的各种选项(请参阅http://developer.android.com/guide/developing/tools/adb.html#logcat)。 – 2011-05-12 14:31:58

+0

谢谢,马特。但是,logcat日志中包含了很多不相关的信息,而且它们不太可能被teamcity解析器解析:(因此我想知道是否有方法来生成,例如Surefire或jUnit日志。 – 2011-05-16 05:48:45

2

Ant(http://ant.apache.org/)几乎是构建java项目的事实标准。它具有非常简单易学的脚本语言,甚至可以用来将应用程序部署到多个目标。

对于自动化测试,大多数java开发人员使用jUnit(http://www.junit.org/)。虽然不像Ruby on Rails测试框架那么无缝,但jUnit测试确实允许测试驱动开发。

Maven(http://maven.apache.org/what-is-maven.html)更像是一个可以使用ant脚本并运行jUnit测试的元程序。诚然,ant也可以用来运行jUnit测试,但Maven在将所有这些功能集合在一起以及提供额外的功能(例如:自动查找外部依赖关系并下载它们的能力)方面做得很好。

虽然我不熟悉TeamCity,但如果它没有办法与ant/maven/junit集成,我会感到惊讶。

祝你好运!

+0

Thank你的反馈意见。我已经解决了上述问题:使用maven控制构建和测试过程,并使用TeamCity进行持续集成。 – 2011-05-12 06:48:32