本文介紹的是BDD的開發(fā)新框架之一-----Calabash-ios。
Calabash是一款開源的跨平臺UI測試工具舵揭,目前支持iOS和Android钱骂。它使用Cucumber作為測試核心屋厘,Cucumber是一個在敏捷團(tuán)隊十分流行的自動化的功能測試工具,它使用接近于自然語言的特性文檔進(jìn)行用例的書寫和測試对扶,支持多語言和多平臺。
Calabash-ios 簡單步驟:
1.安裝ruby gem
2.安裝calabash-cucumber惭缰,安裝后你的mac機(jī)器上應(yīng)該能夠使用calabash-ios命令了
3.git clone或者svn co下來你IOS代碼浪南,IOS工程主目錄是有一個.xcodeproj的文件的,找到它進(jìn)入到該目錄
4.calabash-ios setup
5.calabash-ios gen
6.In Xcode, build your project using the -cal scheme
7.cucumber
以下是詳細(xì)步驟:
前期準(zhǔn)備工作
Calabash是一個ruby的庫文件漱受,為避免Calabash在運行中出現(xiàn)各種問題,盡量保證電腦中的ruby環(huán)境是最新版的络凿,或者2.1以上版本。mac系統(tǒng) 10.11自帶的是2.0版本的.需要升級到最新版本 建議升級ruby 用RVM 工具統(tǒng)一管理ruby庫昂羡。
詳細(xì)步驟:點擊此處查看
如果使用RVM升級時出錯P跫恰!還有大招:通過ruby-install安裝(一定要安裝到RVM中方便統(tǒng)一管理ruby) 方法如下:
Using ruby-install with RVM:
$ ruby-install --rubies-dir ~/.rvm/rubies ruby 2.2.2
安裝完成之后再用RVM 的查看ruby庫列表 然后設(shè)置默認(rèn)ruby庫:點擊此處查看
一:基礎(chǔ)環(huán)境搭建 Calabash-ios
Calabash-ios官方wiki 提供了三種方式的xcode工程環(huán)境配置虐先。點擊查看
其中最合理的應(yīng)該是:添加Calabash Config配置文件這種怨愤,相比修改debug config這種來說,不會影響項目中原有的config文件蛹批,相比添加 -cal targert這種來說撰洗,也不會影響項目中工程文件的修改,當(dāng)項目中導(dǎo)入其他文件時需要同時導(dǎo)入到原target和-cal target中腐芍,而添加Calabash Cofig這種則不會差导。
需要注意的是,在根據(jù)Calabash cofig這種方法配置環(huán)境時該步驟:
Create a Gemfile in the same directory as your .xcodeproj:
source "https://rubygems.org"
gem "calabash-cucumber", ">= 0.16", "< 2.0"
需要通過 bundle(一種管理ruby gem庫的工具) 來管理猪勇。bundle 管理庫命令(bundle(安裝)柿汛,bundle update(更新)):類似于 pod uodate (更新庫),pod install(安裝庫)埠对。配置文件 Gemfile 也類似于 podfile
1.安裝bundle方法
在命令行輸入$:sudo gem install bundler
然后輸入密碼,就會自動安裝裁替。
2.在項目根目錄中創(chuàng)建文件名為 Gemfile 的文件,文件中寫入如下內(nèi)容(需要注意ruby的官方鏡像畢竟慢项玛,可以使用大淘寶的鏡像):
source "https://ruby.taobao.org"
gem "calabash-cucumber", ">= 0.16", "< 2.0"
3安裝相應(yīng)的calabash-cucumber庫.
命令行切換到工程根目錄下 輸入$:bundle
4.如果需要更新Gemfile文件中的庫版本,可以通過:
切換到工程根目錄 命令行輸入$:bundle update
二:測試用例編寫及其運行 Cucumber
1.創(chuàng)建cucumber必要的文件
命令行 切換到工程根目錄$:calabash-ios gen
就會創(chuàng)建feature的文件夾 文件夾下放著測試用例編寫弱判,必須的文件:相關(guān)目錄結(jié)構(gòu)及其功能襟沮,(cucumber的使用)可以看此處
2.編寫cucumber測試用例
相信通過上面cucumber的使用這一文章已經(jīng)基本了解cucumber的目錄結(jié)構(gòu):下面就開始編寫簡單地測試用例吧:
cucumber 測試用例編寫需要一定的時間去了解它的基本的語法的,所以不要著急先看看一個非常全面的demo吧:官方demo當(dāng)然先大體看下demo了解下結(jié)構(gòu)和語法昌腰,要想真正看懂需要繼續(xù)補(bǔ)充一些知識开伏。以下就是需要結(jié)合demo看的文章(大部分文章都是從calabash官方wiki和Cucumber 官方wiki中可以獲得):
1).cucumber 目錄結(jié)構(gòu)介紹 官方wiki
2).calabash 官方wiki --- Calabash iOS Ruby API
3).calabash 官方wiki --- Query Language
4).calabash 官方wiki --- public API
5).最重要的還是看demo 進(jìn)行學(xué)習(xí)其他demo
3.運行cucumber測試用例
運行cucumber的時候特別注意:
1).首先運行 對應(yīng)的項目.如果項目中打印出以下語句及Calabash正常開啟:
DEBUG CalabashServer:222 | Creating the server:
DEBUG CalabashServer:223 | Calabash iOS server version: CALABASH VERSION: 0.16.4
2).保證工程中的calabash-ios.framework和calabash-cucumber ruby gem庫并且最新:如果不一致可以通過此方法升級
#下載最新的 .framwork
項目根目錄$: bundle exec calabash-ios download
#更新calabash-cucumber ruby gem庫
項目根目錄$:bundle update
3).命令行運行 cucumber 執(zhí)行命令。需要注意的是:『cucumber運行遭商,啟動的模擬器』 一定要跟 『運行工程時固灵,啟動的模擬器』 一致否則會發(fā)生錯誤
查看工程運行的模擬器UUID兩種方法:
1.方法一 :Xcode -> Window -> Devices 查看對應(yīng)的模擬器UUID
2.方法二 :命令行輸入$: xcrun instruments -s devices
執(zhí)行 cucumber 命令語句:
#運行某個tag場景方法
CMD ?$: bundle exec cucumber DEVICE_TARGET="90E602DD-376F-4EF9-9B82-208D9016B61D"? --tags @travis
運行整個feature場景方法
CMD ?$: bundle exec cucumber DEVICE_TARGET="90E602DD-376F-4EF9-9B82-208D9016B61D"? features/slider.feature
4.cucumber運行tags 和 feature 的使用