【问题标题】:Continuous Integration for Android via TeamCity. Preferred tools?通过 TeamCity 为 Android 持续集成。首选工具?
【发布时间】:2011-08-10 22:13:43
【问题描述】:

我们的团队是 Android 和 Java 开发的新手(最初,我们来自 C++),因此我们对 Java 构建工具的了解非常浅。

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

如果您能说明您更喜欢的 Android 构建工具,我将非常感激解释或提供任何链接来解释 android 应用程序的持续集成过程(不仅包括构建应用程序包,还包括在模拟器下运行测试)。

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

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

【问题讨论】:

    标签: android testing build automation continuous-integration


    【解决方案1】:

    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 集成的方法,我会感到惊讶。

    祝你好运!

    【讨论】:

    • 感谢您的反馈。我已经解决了上面已经描述的问题:使用 maven 控制构建和测试过程并使用 TeamCity 进行持续集成。
    【解决方案2】:

    我们正在使用以下内容为 Android 构建持续集成平台:

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

    Team City 还将运行 Maven 项目 - 配置 TeamCity 代理以运行特定 Maven 目标非常简单,例如mvn integration-test - 代理可以在装有 Android 模拟器的 PC 或插入的真正 Android 设备上运行。

    过去,我有一大群 TeamCity 代理针对不同的硬件进行测试。例如,如果您将 5 台 Android 设备插入代理,您可以配置 TeamCity 构建管道以在所有 5 台设备上运行集成测试(通过 Maven 轻松控制),并且仅在所有 5 台设备都通过时才声明 PASS。

    【讨论】:

    • 感谢您的回答。是的,带有 maven-android-plugin 的 Maven 已经成功解决了这个问题。此外,TeamCity 与之无缝集成。不过,我想知道您是否可以告诉我,有没有办法提取任何 android 仪器测试(在模拟器下运行)的日志?
    • 使用“adb logcat”命令访问 Android 日志 - 您可以将各种选项传递给它(请参阅 developer.android.com/guide/developing/tools/adb.html#logcat)。
    • 谢谢你,马特。但是,logcat 日志仍然包含很多不相关的信息,而且它们不太可能被 teamcity 解析器解析:(因此我想知道是否有一种方法可以生成,例如 Surefire 或 jUnit 日志。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多