win7下安裝calabash android并成功運行

筆者為了搭這個環境,嘔心瀝血花了3/4天,calabash android在Windows下安裝算是比較復雜,在MAC上比較簡單

一、環境搭建

首先,先說我們需要的環境

1、JDK

2、Android SDK

這兩個環境不多說,不清楚的可以參照“UI Automator環境配置”,里面描述的很詳細

3、安裝Ant,網址:http://ant.apache.org/bindownload.cgi?設置環境變量:ANT_HOME=D:\apache-ant-1.10.5? ? ? ?Path添加內容:?";%ANT_HOME%\bin"

選擇apche-ant-1.10.5-bin.zip下載

4、ruby:http://rubyinstaller.org/downloads/(筆者下載了比較穩定的2.3.3,為什么下這個,我嘗試了無數遍,幾乎每個版本都嘗試安裝,若ruby<2.0.0,會出現版本過低,無法簽名的詭異事件,若版本過高,和之后我們需要安裝的calabash-android會存在沖突),安裝ruby時,勾選自動創建環境變量,若ruby版本較高,會有轉換UFT-8的彈框,也需要勾選上,防止后面運行時要轉換格式

!?。。∠螺druby2.3.3之后自帶的ruby zip是1.2.2,注意這里有一個大坑,再后面build test server時一直提示ruby zip 1.2.2不是自定義的壓縮包之類的,所以ruby安裝成功之后我們需要把ruby zip 1.2.2替換成1.2.2。替換方法:https://rubygems.org/gems/rubyzip/versions/1.2.0中點擊獲取1.2.1的地址,在cmd中輸入gem install rubyzip -v 1.2.1運行即可

5、Dev-Kit:4.7.2 x64(重要:需要根據ruby安裝版本選擇),因為我的電腦是64bit,所以ruby和Dev-Kit都選擇64bit下載安裝

以上動作都執行完畢后,我們需要安裝calabash-android,安裝路徑可以選擇在cd /d devkit下(之前很多安裝教程都介紹獲取taobao鏡像安裝,但現在這個網址已經不維護了,我們使用一個簡單的方法來替代它,直接在devkit下輸入gem install calabash-android來安裝,注意,使用這個方法安裝的是calabash-android的最新版本,如果你直接使用最新版本,后面又有一個大坑等你,那就是你的簽名與創建的test server不一致,導致你的腳本永遠run不起來,為了解決這個問題我們安裝較低版本calabash-android 0.9.5,網址:https://rubygems.org/gems/calabash-android)

關于ruby zip 1.2.2與calabash-android 0.9.8導致的錯誤請參考:https://github.com/calabash/calabash-android/issues/802

Ok,到這里,我們所有的環境都安裝好了,現在我們檢查一下,分別輸入:javac version,android,ruby -v,calabash-android version,返回版本及正確信息即可,代表我們的環境已經沒有問題

二、實際運行

1、我們到calabash官網下載測試demo來檢驗我們的環境是否可以成功跑通:下載測試用例:https://github.com/bootstraponline/calabash_android_example,直接點download即可。


我們自己建立一個類似于“android test”的文件夾

命令符cd到這個路徑下,輸入calabash-androi gen來鍵我們的骨架,features目錄下有個my_first.feature文件,這個就是用例文件,另外生成了兩個文件夾,一個step_definitions用來存放一些自定義step文件,一個support存放初始化文件

2、對測試apk重簽名,簽名方法:calabash-android resign 測試apk,注意在這里你可能會遇到錯誤,提示你找不到keystore,這是你需要輸入calabash-android setup進行簽名設置

keytool -genkey -v -keystore C:\Users\Administrator\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

根據提示依次輸入

1)keystore路徑:C:\Users\Administrator\.android\debug.keystore

2)password:android

3)依賴alias:androiddebugkey

設置完后再次重簽即可成功

3、你需要創建一個test server來支持apk跑通,calabash-android build 測試APK,此時你可能會遇到GBK錯誤。我們需要修改cmd控制臺編碼,輸入chcp 65001進行編碼切換,然后繼續運行,你可以看到服務已經被建立了,這就是用于安裝到測試機上面的測試服務apk。

4、最后我們可以開始run我們的apk了,如果你的腳本中有中文,可能不會被識別,你需要執行chcp 936切換GBK,再次run一下,成功??!

三、calabash-android遇到的坑總結

1)第一大坑,自動安裝calabash-android最新版,導致簽名文件永遠不成功,遂將版本降至0.9.5,gem install calabash-android -v 0.9.5

2)第二大坑,ruby zip 1.2.2,永遠提示1.2.2不是標準的ruby zip文件,遂安裝1.2.1版本,gem install?rubyzip -v 1.2.1

3)第三大坑,將calabash-android降下來后,又提示ruby有過時的依賴性,(因為我之前一直都安裝最新ruby版本),遂將ruby降至2.3.3

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容