close

聽說 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 叫起來看一下

未命名  

 

雖然好像很簡單,但是幹你娘的哥弄了一整個晚上

下次來介紹如何使用這個超級自動化的血滴子

arrow
arrow
    全站熱搜

    擒猿小舖 發表在 痞客邦 留言(1) 人氣()