【BDD】calabash 和 cucumber的使用

本文介紹的是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官方wikiCucumber 官方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 的使用

1)cucumber 官方wiki --- tags的使用

2)cucumber 官方wiki --- 運行 feature 的方法

3)ruby 學(xué)習(xí)網(wǎng)站

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市劫流,隨后出現(xiàn)的幾起案子巫玻,更是在濱河造成了極大的恐慌丛忆,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仍秤,死亡現(xiàn)場離奇詭異熄诡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)诗力,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門凰浮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苇本,你說我怎么就攤上這事袜茧。” “怎么了圈澈?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵惫周,是天一觀的道長。 經(jīng)常有香客問我康栈,道長递递,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任啥么,我火速辦了婚禮登舞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘悬荣。我一直安慰自己菠秒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布氯迂。 她就那樣靜靜地躺著践叠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嚼蚀。 梳的紋絲不亂的頭發(fā)上禁灼,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機(jī)與錄音轿曙,去河邊找鬼弄捕。 笑死,一個胖子當(dāng)著我的面吹牛导帝,可吹牛的內(nèi)容都是我干的守谓。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼您单,長吁一口氣:“原來是場噩夢啊……” “哼斋荞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起虐秦,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤譬猫,失蹤者是張志新(化名)和其女友劉穎讯檐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體染服,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡别洪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了柳刮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挖垛。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秉颗,靈堂內(nèi)的尸體忽然破棺而出痢毒,到底是詐尸還是另有隱情,我是刑警寧澤蚕甥,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布哪替,位于F島的核電站,受9級特大地震影響菇怀,放射性物質(zhì)發(fā)生泄漏凭舶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一爱沟、第九天 我趴在偏房一處隱蔽的房頂上張望帅霜。 院中可真熱鬧,春花似錦呼伸、人聲如沸身冀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至响委,卻和暖如春铃辖,著一層夾襖步出監(jiān)牢的瞬間剩愧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工澳叉, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沐悦。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓成洗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親藏否。 傳聞我的和親對象是個殘疾皇子瓶殃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容