八、Robotium 和 Maven

本章介绍了使用 Maven 工具来附加一个 Android 项目,以便添加到构建过程中。本章还解释了在 Maven 中使用 Robotium 所需的不同配置/安装。

自动化使用 Maven 构建的安卓应用

Automate Android app built with Maven

Maven 基本上是基于 项目对象模型 ( POM 的概念的软件项目管理工具,在项目根是需要的,有助于构建项目。

它可以从一条中心信息管理项目的构建、报告和文档。

Maven 特色

Maven 的主要目标是让开发人员在最短的时间内理解开发工作的完整状态。为了实现这一目标,Maven 试图解决几个值得关注的领域:

|

特征

|

描述

| | --- | --- | | 可重复的构建 | 您可以在构建服务器上重复构建项目。 | | 关注自动化 | Maven 将您置于软件开发过程自动化的正确心态中。 | | 依赖性管理 | Maven 将解析并管理您的依赖关系。 | | 标准化 | 了解 Maven 的新开发人员将立即知道如何构建、发布、测试,从而消除大量的学习开销。 | | 插件 | 有很多插件可以执行不同的任务。这些是通过在pom.xml文件中添加引用来配置的。 | | 测试 | 这个给了你运行测试和集成测试的能力,作为你项目生命周期的一部分。 |

要让 Maven 为 Android 启动并运行,您必须为现有的 Eclipse 项目使用 Android Maven 插件 。您可以从上图中提到的链接安装 Maven。

安卓 Maven 插件的主页位于以下网站:

https://code . Google . com/p/maven-Android 插件/

设置安卓 SDK 和 ADT

您可以使用安卓软件开发工具包工具提供的命令行工具创建/构建安卓项目。ADT 为 Eclipse 提供了相同的功能。您也可以通过 Eclipse 导出向导手动导出安卓应用。目前,Apache Ant 主要被 Android SDK 提供的工具用来构建和部署应用。

Setting up Android SDK and ADT

新的基于 Gradle 的安卓应用构建系统是对旧的基于 Eclipse、Ant 和 Maven 的应用的巨大改进。它有一个简单的声明性语法,使得构建应用的不同变体(例如,登台和生产)非常容易。Gradle 也是新的 Android Studio IDE 的默认构建系统,所以有很多很好的理由来迁移你的应用。

安卓工作室将基于 Gradle。在安卓工作室,不会有 ADT,因为它将内置安卓实用程序。Gradle 在内部使用 Maven 存储库来管理依赖关系,这最终有助于使 Maven 的支持变得非常容易。

为安卓工具设置环境路径

当你想在 Eclipse 之外构建一个安卓项目时,你主要需要使用命令行或者 shell。要实现这一点,您需要确保安卓软件开发工具包的toolsplatform-tools文件夹是 PATH 环境变量的一部分。为此,请遵循以下步骤:

  1. Set the environment variable ANDROID_HOME to the path of your Android SDK.

    Windows 用户:

    • 在桌面上,右键单击我的电脑,然后单击属性
    • 点击左栏的高级系统设置链接。
    • 系统属性窗口,点击环境变量按钮,添加名为ANDROID_HOME的新变量

    基于 Unix 的系统用户:

    • 导出ANDROID_HOME=/path/to/android/sdk
    • 另外,在$PATH中添加$ANDROID_HOME/tools and $ANDROID_HOME/platform-tools(对于 Windows,%ANDROID_HOME%\tools and %ANDROID_HOME%\platform-tools)。
    • 所有 MacOS 用户,请注意的路径在命令行和launchd启动的 ide 中工作,需要在/etc/launchd.conf中设置。

使用 Maven 构建安卓测试

创建一个名为com.android.build.maven的安卓项目。在这个部分,让我们专注于使用 Maven 为您的 Android 测试应用创建一个构建。添加正确的pom.xml文件,如下面的项目目录所示,并向 Maven 提供命令来构建、安装和运行您的应用。

以下是pom.xml文件的代码:

<?xml version="1.0" encoding="UTF-8"?>
<project  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">



</project>

可以参考chapter8_code1pom.xml文件的完整源代码。

前面的pom.xml文件与主项目中的pom.xml文件非常相似,但这有几个依赖项。

apk的依赖是让安卓 Maven 插件找到它将在设备/仿真器上运行测试的apk。对 JAR 文件的依赖是使编译器能够从主项目中找到您的 Java 类。为了实现这一点,您使用提供的范围,这样类就不会真正包含在您的测试项目中。

pom.xml的构建部分提供的安卓 Maven 插件现在将使用工具在mvn install上自动运行测试,就像 Eclipse 一样。它使用相同的底层工具。

当您只连接了一个仿真器/设备时,自动执行将会工作。如果您有多个设备/仿真器正在运行,您需要指定使用哪个设备作为命令行选项:

  • -Dandroid.device=usb
  • -Dandroid.device=emulator
  • -Dandroid.device=specificdeviceid

您也可以使用此命令行选项禁用检测测试:

  • -Dandroid.enableIntegrationTest=false

默认属性可以在pom.xml中设置如下:

<project>
  
  <properties>
    <android.device>emulator</android.device>
  </properties>
  
</project>

使用 Maven 构建您的应用,并使用以下命令将其部署到设备/仿真器:

mvn install android:deploy

使用 Maven,您还可以自动启动和停止安卓虚拟设备。应用可以通过 Maven 使用以下命令启动:

mvn3 android:run

我们必须在pom.xml所在的项目目录中。

总结

在本章中,您学习了在安卓和机器人测试中使用 Maven 的不同方法。您还学习了不同的 Maven 命令来与 Android 应用交互,即测试应用。

你说什么?你准备好为你的安卓项目创建和自动化测试用例了吗?我打赌你是!继续,享受使用 Robotium 对 Android 进行自动化测试,别忘了告诉社区这件事!

加入 https://groups.google.com/forum/#!forum/robotium-developers 的论坛,成为这个神奇的机器人开发社区的一员。我们在等你!

感谢您阅读本书并支持开源技术。希望很快能见到你!