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

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

 

最近由於須要用到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,可是同步後我發現上面相關的庫文件並無被添加進來.對比不少資料後,我很確信不是我在寫法的問題.就是這個問題折騰了我好幾天的!
app

 

 最後的解決辦法是先把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已經被棄用了.等我熟悉了這兩大框架的使用再來寫相關的博客吧.

測試

相關文章
相關標籤/搜索