maven运行Robotium测试case
来源:互联网 发布:淘宝怎样看自己的评价 编辑:程序博客网 时间:2024/06/05 07:47
http://www.yeetrack.com/?p=578
Robotium是Android应用的自动化测试工具,类似于Selenium,我们可以通过编写java代码来测试android程序。 maven是个项目管理工具,可以很方面地对项目进行管理、构建、发布等。利用maven构建,可以很方便地放到hudson、jenkins等集成环境中。
- 安装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后,在AVD 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://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"><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] ---------------------------------------------
- maven运行Robotium测试case
- !!!maven运行Robotium测试case
- Android测试QQ群讨论交流内容-自动化测试Case粒度、Case耦合性、robotium和robolectric看法
- 解决robotium一个类多个测试不能同时运行的问题
- Robotium 不能同时跑多个case
- 通过Maven编译Robotium
- 如何用maven运行特定的test case
- 【Android自动化测试之Robotium】04. 命令行运行Android Robotium自动化用例或单元测试用例
- 【Android自动化测试之Robotium】04. 命令行运行Android Robotium自动化用例或单元测试用例
- 【Android自动化测试之Robotium】04. 命令行运行Android Robotium自动化用例或单元测试用例
- 【Android自动化测试之Robotium】04. 命令行运行Android Robotium自动化用例或单元测试用例
- 【Android自动化测试之Robotium】04. 命令行运行Android Robotium自动化用例或单元测试用例
- robotium 测试apk包
- robotium 测试APK包
- Robotium测试总结
- Robotium_Android robotium自动化测试
- Android Robotium自动化测试
- robotium测试apk
- Ubuntu下KVM的安装配置
- Splay讲解
- 网站开发-php开发手机论坛(4)-数据库设计
- 安全通信可以提供使用VPN
- 【Linux入门学习之】Linux连接文件:硬连接和软连接
- maven运行Robotium测试case
- Android联系人数据库全解析-2.0以上
- Android属性之build.prop生成过程分析
- Struts1和Struts2的区别和对比(完整版)
- 转载保存关于ros的一些有用网页
- 安全解决方案对于VPN - SSL或IPsec
- 最短路算法总结
- JS get实现数据列表的修改
- MongoDB使用