非淡泊无以明志,非宁静无以致远。这篇文章主要讲述Android Studio下运行UiAutomator相关的知识,希望能为你提供帮助。
之前学习UiAutomator均是在eclipse下,因学习android开发接触AS越来越频繁,于是想知道AS下如何建立UiAutomator项目。网上的资料多很凌乱,查了很多资料,实践后发现,只要找对了步骤,AS下比eclipse下部署运行简单的多。
【Android Studio下运行UiAutomator】步骤总结如下:
一、新建一个项目,和Android项目的区别是不要创建Activity(Add No Activity)
文章图片
二、新建项目完成后,修改gradle文件
文章图片
添加最后一行:
dependencies { compile fileTree(dir: \'libs\', include: [\'*.jar\']) testCompile \'junit:junit:4.12\' compile \'com.android.support:appcompat-v7:23.1.1\' //引入Uiautomator androidTestCompile \'com.android.support.test.uiautomator:uiautomator-v18:2.1.1\' }
Gradle sync后,可以看见在External Libraries目录下生成了uiautomator-v18-2.1.1目录,这时候表示uiautomator库已经成功导入了。
三、编写测试用例
这部分遇到了两个困难:
①和eclipse可以用命令行编译执行不同,AS全部集成在内部了,一般情况下点击该测试方法右键,直接run就行
但是如果右键没有run选项,不知道怎么运行怎么办呢
可以先点击AS左侧边栏Build Variants查看Test Artifact选项,选择Andriod Instrumentation Tests, 再点击左侧边栏Structure,找到该测试方法,右键点击看是否可以运行。
②或许是因为1.0和2.0的关系(2.0被instrumentation收编了,有些1.0的方法在2.0被弃用了),这一个简单的点击home键的用例折腾了半天,才运行起来。
public class Test extends InstrumentationTestCase { //public class Test extends UiAutomatorTestCase {public void testHome(){ UiDevice.getInstance(getInstrumentation()).pressHome(); //UiDevice.getInstance().pressHome(); (UiDevice.getInstance()已经被弃用) //UiDevice device = getUiDevice(); (getUiDevice()找不到该方法) //device.pressHome(); }}
2.0不用再继承UiAutomatorTestCase,但却需要继承InstrumentationTestCase。
获取设备的方式也变化了,UiDevice.getInstance(getInstrumentation()) 这才是正确的使用方法。之前常用的两种方式都不再可行。
1.0和2.0的API区别后续得好好熟悉熟悉。
推荐阅读
- 基于Http原理实现Android的图片上传和表单提交
- 使用Cordova框架把Webapp封装成Hybrid App实践——Android篇
- android.os.NetworkOnMainThreadException异常处理办法
- Android 使用定时器在指定日期及时间执行任务
- Android 查看内存
- Android改变了PDA市场格局
- Android编译环境配置(Ubuntu 14.04)
- Ubuntu下Android Studio安装配置和使用
- Android中通过访问本地相册或者相机设置用户头像