Robotium是Android应用的自动化测试工具,类似于Selenium,我们可以通过编写java代码来测试android程序。robotium maven是个项目管理工具,可以很方面地对项目进行管理、构建、发布等。利用maven构建,可以很方便地放到hudson、jenkins等集成环境中。robotium
安装maven,设置环境变量,不在多说。
安装android sdk,设置环境变量。 下载sdk后,在Android SDK Manager中安装Android SDK Tools、Android SDK Platform-tools(注意最好安装16.02,不要安装17,17版本很多工具找不到,造成maven-android-plugin无法使用)、android SDK build-tools和android 4.2.2(API 17)。
安装好android sdk后,在D Manager中新建一个android虚拟机,应该可以正常启动了。
下载Maven Android SDK Deployer插件,让maven支持android,项目在github上,地址https://github.com/mosabua/maven-android-sdk-deployer,下载后,解压到本地目录。进入其根目录执行mvn install -P 4.2(这个版本要和第2步中下载的api对应,api 17对应android 4.2)。

[INFO] Maven Android SDK Deployer SUCCESS [0.190s]
[INFO] Android Platforms SUCCESS [0.000s]
[INFO] Android Platform 4.2 API 17 .. SUCCESS [1.983s]
[INFO] Android Add-Ons .. SUCCESS [0.030s]
[INFO] Android Add-On Google Platform 4.2 API 17 (Maps and USB) SUCCESS [0]

[INFO] Android Extras SUCCESS [0.010s]
如果报错,应该是android sdk中的包没有下全,不过,我们只需要Android Platform 4.2 API 17这个成功即可。
首先利用maven命令行创建一个android-quickstart-archetype,命令如下:
mvn archetype:generate -DarchetypeArtifactId=android-quickstart -DarchetypeGroupId=de.akquinet.android.archetypes -DarchetypeVersion=1.0.8 -DgroupId=com.yeetrack -DartifactId=androidTest
将此项目import到eclipse或者idea中,修改项目的pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yeetrack</groupId>
<artifactId>mavenAndroid</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>mavenAndroid</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<platform.version>4.0.1.2</platform.version>
<sdk.dir>D:\work\android-sdk-windows</sdk.dir>
</properties>
<dependencies>
<!-- <dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>-->
<dependency>
<groupId>com.jayway.android.robotium</groupId>
<artifactId>robotium-solo</artifactId>
<version>4.1</version>
</dependency>
<!--在maven仓库中没有找到android.jar,所以使用本地的jar包-->
<dependency>
<groupId>com.google</groupId>
<artifactId>android</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/android.jar</systemPath>
</dependency>
<dependency>
<groupId>emma</groupId>
<artifactId>emma</artifactId>
<version>2.1.5320</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<encoding>UTF-8</encoding>
<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
<assetsDirectory>${project.basedir}/assets</assetsDirectory>
<resourceDirectory>${project.basedir}/res</resourceDirectory>
<nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
<sdk>
<path>${sdk.dir}</path>
<platform>17</platform>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
修改项目的AndroidManifest.xml文件,我的项目AndroidManifest.xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yeetrack.mavenAndroid" android:versionCode="1" android:versionName="1.0-SNAPSHOT">
<!--指定要测试的软件包-->
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.yeetrack.androidapp" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
</application>
写完测试代码后,直接mvn clean install即可。既然maven跑通了,利用jenkins、hudson自动化构建robotium case都可以很简单地实现,不再叙述。
[INFO] android.device parameter not set, using all attached devices
[INFO] Successfully installed C:\oa-robotium\target\mavenAndroid-1.0-SNAPSHOT.apk to emulator-5554_android-4.2.2_unknown_sdk
[INFO]
[INFO] --- android-maven-plugin:3.1.1:internal-integration-test (default-internal-integration-test) @ mavenAndroid ---
[INFO] Found 1 devices connected with the Android Debug Bridge
[INFO] android.device parameter not set, using all attached devices
[INFO] Running instrumentation tests in com.yeetrack.mavenAndroid on emulator-5554
(avdName=android-4.2.2)
[INFO] Run started: com.yeetrack.mavenAndroid, 2 tests:
[INFO] Start: com.yeetrack.oa.robotium.test.BusInfoTest#testBus
[INFO] End: com.yeetrack.oa.robotium.test.BusInfoTest#testBus
[INFO] Start: com.yeetrack.oa.robotium.test.LoginTest#testLogin
[INFO] End: com.yeetrack.oa.robotium.test.LoginTest#testLogin
[INFO] Run ended: 36197 ms
[INFO] Tests run: 2, Failures: 0, Errors: 0
[INFO] Report file written to C:\oa-robotium\target\surefire-reports\TEST-emulator-5554_android-4.2.2_unknown_sdk.xml
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ mavenAndroid ---
[INFO] Installing C:\oa-robotium\target\mavenAndroid-1.0-SNAPSHOT.apk to C:\Users\youthflies\.m2\repository\com\yeetrack\mavenAndroid\1.0-SNAPSHOT\mavenAndroid-1.0-SNAPSHOT.apk
[INFO] Installing C:\oa-robotium\pom.xml to C:\Users\youthflies\.m2\repository\com\yeetrack\mavenAndroid\1.0-SNAPSHOT\mavenAndroid-1.0-SNAPSHOT.pom
[INFO] Installing C:\oa-robotium\target\mavenAndroid-1.0-SNAPSHOT.jar to C:\Users\youthflies\.m2\repository\com\yeetrack\mavenAndroid\1.0-SNAPSHOT\mavenAndroid-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:45.668s
[INFO] Finished at: Sat May 25 15:01:19 CST 2013
[INFO] Final Memory: 17M/223M
[INFO] ------------------------------------------------------------------------
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-27040-1.html
台湾人也好
但实际利率上浮不再设上限
是因为你的家在