聽說 Calabash (http://calaba.sh/) 是一個很屌的自動化工具,哥今天就來練他一練
以下介紹如何在 Window 7 上安裝 Calabash for Android 與執行範例程式
首先,JDK 版本必須是 32 位元版
java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) Client VM (build 25.40-b25, mixed mode)
接著要有 ANdroid SDK
http://developer.android.com/sdk/installing/index.html
設一個環境變數 ANDROID_HOME
將 tools & platform-tools 加入 Path
如:
ANDROID_HOME:D:\AndroidSDK
PATH:%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
還要有 Ant 工具
http://ant.apache.org/
設一個環境變數 ANT_HOME ,並將其加入 PATH 中
如:
ANT_HOME:C:\apache-ant-1.9.4
PATH:%ANT_HOME%\bin
接下來,要下載 Ruby
http://rubyinstaller.org/downloads/
將下載下來的 Ruby 路徑也加入 PATH 中
還有 Ruby DevKit
http://rubyinstaller.org/downloads/
下載完解壓縮後,透過 cmd 執行以下指令:
ruby dk.rb init
ruby dk.rb install
最後就是安裝主角 Calabash for Android 啦
執行下列指令後就會開始安裝:
gem install calabash-android
以上完成之後,輸入指令驗證有否裝成功
calabash-android
接著來跑跑看範例程式
至 https://github.com/calabash/calabash-android-demoapp 抓程式碼
這裡 AndroidMenifest.xml 要多加一行 permission 宣告:
<uses-permission android:name="android.permission.INTERNET" />
否則之後 calabash 會跑失敗
利用 Eclipse 或 Ant 產生一包 APK,Eclipse 應該大家都會,哥偏要用 Ant
作法如下:
cd calabash-android-demoapp-master
android create project --target 1 --name CalabashDemo --path . \
--activity AndroidDemoProjectActivity \
--package sh.calaba.demoproject
接著執行:
ant debug
就會有一個 CalabashDemo-debug.apk 出現在 bin 資料夾下,將其 copy 到 project 底下的 calabash folder
最後一步,執行已經寫好的calabash 腳本
cd calabash
calabash-android run CalabashDemo-debug.apk
如果出現以下錯誤訊息可能是編碼的關係,
No test server found for this combination of app and calabash version. Recreating test server.
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/calabash-android-0.5.2/lib/calabash-andro
id/helpers.rb:159:in `scan': invalid byte sequence in CP950 (ArgumentError)
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/calabash-android-0.5.2/lib/c
alabash-android/helpers.rb:159:in `extract_md5_fingerprint'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/calabash-android-0.5.2/lib/c
alabash-android/helpers.rb:151:in `block (2 levels) in fingerprint_from_apk'
請先下以下這行指令然後再執行一次
set RUBYOPT=-EUTF-8
這個腳本很簡單,只是把 app 叫起來看一下
雖然好像很簡單,但是幹你娘的哥弄了一整個晚上
下次來介紹如何使用這個超級自動化的血滴子