八、Robotium 和 Maven
本章介绍了使用 Maven 工具来附加一个 Android 项目,以便添加到构建过程中。本章还解释了在 Maven 中使用 Robotium 所需的不同配置/安装。
自动化使用 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 提供的工具用来构建和部署应用。
新的基于 Gradle 的安卓应用构建系统是对旧的基于 Eclipse、Ant 和 Maven 的应用的巨大改进。它有一个简单的声明性语法,使得构建应用的不同变体(例如,登台和生产)非常容易。Gradle 也是新的 Android Studio IDE 的默认构建系统,所以有很多很好的理由来迁移你的应用。
安卓工作室将基于 Gradle。在安卓工作室,不会有 ADT,因为它将内置安卓实用程序。Gradle 在内部使用 Maven 存储库来管理依赖关系,这最终有助于使 Maven 的支持变得非常容易。
为安卓工具设置环境路径
当你想在 Eclipse 之外构建一个安卓项目时,你主要需要使用命令行或者 shell。要实现这一点,您需要确保安卓软件开发工具包的tools
和platform-tools
文件夹是 PATH 环境变量的一部分。为此,请遵循以下步骤:
-
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_code1
中pom.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 的论坛,成为这个神奇的机器人开发社区的一员。我们在等你!
感谢您阅读本书并支持开源技术。希望很快能见到你!
版权属于:月萌API www.moonapi.com,转载请注明出处