Android Studio下运行UiAutomator
之前学习UiAutomator均是在eclipse下,因学习Android开发接触AS越来越频繁,于是想知道AS下如何建立UiAutomator项目。网上的资料多很凌乱,查了很多资料,实践后发现,只要找对了步骤,AS下比eclipse下部署运行简单的多。
步骤总结如下:
一、新建一个项目,和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区别后续得好好熟悉熟悉。
Android Studio下运行UiAutomator的更多相关文章
- Android studio下gradle Robolectric单元测试配置
android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供 ...
- Android studio 下JNI编程实例并生成so库
Android studio 下JNI编程实例并生成so库 因为公司需要为Android相机做美颜等图像后期处理,需要使用JNI编程,最近学了下JNI,并且在Android Studio下实现了一个小 ...
- Android Studio下使用NDK的流程
我要重新拿回持之以恒徽章!! 老规矩,先说看能学会什么:ANDROID STUDIO下NDK的使用方法.JNI的基本使用方法,C语言调用JAVA的方法. 首先要下载NDK,如果你没有VPN可以来htt ...
- Android Studio下HierarchyViewer的使用
什么是HierarchyViewer Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat.它是Android自带的 ...
- Android studio 下 JNI 开发实例
在AS中进行 NDK 开发之前,我们先来简单的介绍几个大家都容易搞懵的概念: 到底什么是JNI,什么是NDK? 何为“交叉编译”? 先看什么是 JNI?JNI 的全称就是 Java Native In ...
- 安装android Studio和运行react native项目(基础篇)
ANDROID_HOME环境变量 确保ANDROID_HOME环境变量正确地指向了你安装的Android SDK的路径. 打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设 ...
- Android Studio下打jar包
在我们使用Eclipse时,我们常常使用的第三方类库文件大多都是jar包形式,用起来很方便.但是jar包只能打包class文件,对于Android UI类库而言,我们常常需要打包资源文件,对于界面不多 ...
- Android Studio下导出jar包和aar包
Android Studio下导出jar包和aar包 jar包和aar包的区别 步骤 1. 创建Android工程 创建工程比较简单,不错复述 2. 创建一个Library(Module) 创建了一个 ...
- Android Studio下多渠道打包
Android Studio下实现多渠道打包 直接上步骤 步骤 1. 清单文件添加属性(以友盟统计为例) 在application标签下添加meta-data属性 <application -- ...
随机推荐
- oracle number 和sqlserver numeric的区别
number如果不指定范围默认是可以输入所有位数的小数,numeric如果不指定小数默认是不允许输入小数
- C#中两个时间的比较
var DateTimedt1 = Convert.ToDateTime(dt); var DateTimedt2 = Convert.ToDateTime(DateTime.Now); ...
- UVAlive3211 Now or later(2-SAT)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33799 [思路] 2-SAT. 二分安全间隔x,先到为1后到为0, ...
- Android新浪微博客户端(六)——Home界面的ListView
原文出自:方杰|http://fangjie.info/?p=184转载请注明出处 最终效果演示:http://fangjie.info/?page_id=54该项目代码已经放到github:http ...
- has-a关系——包含对象成员的类
#ifndef _STUDENT_H_ #define _STUDENT_H_ #include <iostream> #include <string> #include & ...
- NEXT | 不错过任何一个新产品
NEXT | 不错过任何一个新产品 NEXT 不错过任何一个新产品
- iOS开发之自定义输入框(利用UITextField及UITextView)
drawRect的工作原理:首先苹果是不推荐我们直接使用drawRect进行工作的,直接调用他也是没有任何效果的.苹果要求我们调用UIView类中的setNeedsDisplay方法,则程序会自动调用 ...
- [Javascript] Advanced Reduce: Common Mistakes
Take away: Always check you ruturn the accumulator Always pass in the inital value var data = [" ...
- Win32 的dll导入
dll 文件可以导入变量,函数,和C++类,但是导入变量会使执行程序与dll紧耦合,而C++类导入则需要两个文件的开发商所用的编译器相兼容,所以做好只导入函数; 创建dll : 头文件:#ifdef ...
- [转] 查看CPU使用率 top命令详解
一 top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前 台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示 ...