【轉】Android Studio導入uiautomator測試框架


文章來源 : http://blog.csdn.net/u011504118/article/details/46318693

 

最近因為需要用到Android的自動化測試,於是找到了uiautomator和espresso這兩個框架(這里以uiautomator為例).由於在Android Studio(以下簡稱AS)中使用uiautomator這方面的資料很少,國內這方面的博客基本沒有,國外的資料也都很少.可能是因為比較新的原因吧.雖然Android官網有教程,但最終還是折騰了好久才解決.寫這篇博客一方面希望大家能夠少走一些彎路,另一方面也算是我自己的學習筆記吧.

說明:我的AS版本是1.2.1.1

關於什么是uiautomator和espresso,這里就不做介紹了.

使用之前首先得保證你的Android Support Repository已經成功安裝

安裝Support Repository

安裝成功后,根據Android官網給出的教程,首先第一步是在build.gradle中添加依賴:

dependencies {
        androidTestCompile 'com.android.support.test:runner:0.2'
        androidTestCompile 'com.android.support.test:rules:0.2'
        androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.0'
}

然后添加

defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

添加完依賴后Sync Project with Gradle Files,但是同步后我發現上面相關的庫文件並沒有被添加進來.對比很多資料后,我很確信不是我在寫法的問題.就是這個問題折騰了我好幾天的!

 

 最后的解決辦法是先把androidTestCompile換成compile,同步一下,此時會發現庫文件已經被添加進來了.

 

最后再將compile換回androidTestCompile,解決~

突然就覺得自己被坑了,也不知道這算不算是AS的一個BUG…

如果同步之后發現諸如此類的錯誤:

 Warning:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (22.1.1) and test app (22.0.0) differ.

先在項目的根目錄用./gradlew -q app:dependencies查看項目依賴關系(Windows用戶請使用gradlew.bat -q app:dependencies), 然后修改build.gradle,否則在后面運行測試時可能會報依賴關系的錯誤.
可能需要為gradlew加上可執行權限.

說明:我這里會報這個警告是因為新建項目的時候AS幫我自動添加了compile 'com.android.support:appcompat-v7:22.1.1'依賴,將22.1.1改為22.0.0即可.

然后還要在build.gradle中添加:

packagingOptions {
    exclude 'LICENSE.txt'
}

不添加的話運行時候還是會報錯的.

最后,確保此時有android設備在運行(虛擬器或手機都可以,要求是系統版本要18或18以上),然后在項目的根目錄下輸入命令:

./gradlew cC

如無意外的話,應該可以看到BUILD SUCCESS了!

如果不想用命令行的話,也可以Edit Configurations,然后點擊+ –> Android Test,然后選擇對應的Module,然后在下面的Specific Instrumentation Runner選擇

android.support.test.runner.AndroidJUnitRunner
選擇OK,然后點擊啟動按鈕.如無意外的話,應該可以看到一條綠色的進度條了!

關於另外一個自動化測試框架Espresso,導入方法和uiautomator一樣,不同的只是依賴而已.

dependencies {
    androidTestCompile 'com.android.support.test:runner:0.2'
    androidTestCompile 'com.android.support.test:rules:0.2'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'
}

關於測試框架的導入就先說這么多了,有關這些框架的使用網上的資料應該也是比較多的了,只不過有一些API已經被棄用了.等我熟悉了這兩大框架的使用再來寫相關的博客吧.


免責聲明!

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



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