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區別后續得好好熟悉熟悉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM