原創(chuàng)
2017-03-16
直接進(jìn)入正題睹晒,關(guān)于Jenkins環(huán)境搭建、Ruby環(huán)境配置袜啃、fastlane使用
等請參考我的另一片文章 基于Jenkins搭建iOS持續(xù)集成開發(fā)環(huán)境
通過Ruby 的gem安裝calabash
gem install calash-cucumber
calabash-ios
新建一個工程 CalabashSample
由于我們這里使用了fastlane來進(jìn)行自動化構(gòu)建囊陡,建議你:
fastlane init # 按照提示輸入你的AppId忿峻,工程Bundle Identifier(如果在AppStore上沒有該Identifier)
touch Gemfile # 成功之后,進(jìn)入到你的fastlane文件夾創(chuàng)建一個Gemfile的文件
#在文件中添加如下內(nèi)容(根據(jù)自己項目需要添加)
###### start #####
source 'https://gems.ruby-china.org/'
gem 'fastlane', '2.20.0'
gem 'slather', '2.3.0'
gem 'gym', '2.0.0'
gem 'xcov'
#### end ####
bundle install # 在終端執(zhí)行此命令撩扒,至此前期準(zhǔn)備工作已經(jīng)完成
集成calabash.framework到工程
在工程中如果為了使用Calabash似扔,需要將calabash.framework與工程關(guān)聯(lián)起來吨些,calabash.framework是Objective-C的,同樣也適用于使用Swift工程炒辉。
???有三種方式可以集成:
-
方式一 --- 創(chuàng)建一個新的Calabash Config
-
創(chuàng)建一個新的Configuration豪墅, 名字可以隨意,但是這里我們既然功能測試使用的是Calabash黔寇,不妨就使用 Calabash 這個名稱
下載Calabash.framework偶器,還記得之前我們準(zhǔn)備階段的Gemfile嗎?你現(xiàn)在需要在文件里面添加上:
-
gem "calabash-cucumber", ">= 0.16", "< 2.0"
# 這里你也可以不用寫出版本號直接 gem "calabash-cucumber" 即可
# 然后你就可以在Gemfile所在的目錄執(zhí)行下列語句來下載了
bundle exec calabash-ios download
- 把calabash.framework與工程關(guān)聯(lián)缝裤,添加如下關(guān)聯(lián)flags
-ObjC
-force_load
# 這里一定要看看你的路徑是否正確屏轰,我這里因為用到fastlane就多了一個fastlane
"$(SOURCE_ROOT)/fastlane/calabash.framework/calabash" -framework
CFNetwork
-
創(chuàng)建一個新的scheme
-
開始構(gòu)建運行,請記住你在上一步驟配置的Calabash scheme憋飞,選擇并運行即可霎苗,如果出現(xiàn)下圖結(jié)果,表明配置成功
-
方式二 --- 通過配置Debug Config
???相信你通過上述配置之后也看出來了榛做,我們只不過新增加了一個Calabash Configuration唁盏,既然我們存在了一個Debug Configuration了,就沒有必要再新創(chuàng)建一個Configuration检眯,然后再進(jìn)行Calabash 配置- 重復(fù)上述 2厘擂、3 步驟
- 配置Scheme
- 重復(fù)上述4、5 步驟即可
-
方式三 --- 通過創(chuàng)建新的Target
- 創(chuàng)建一個新的Target
- 修改Target名稱
- 修改Bundle Identifier
- 更改Info.plist
- 設(shè)置Scheme
- 現(xiàn)在參考 ** 方式一或者方式二 ** 構(gòu)建運行
- 創(chuàng)建一個新的Target
在模擬器上運行Calabash
- 初始化cucumber
# 生成features文件結(jié)構(gòu)
bundle exec calabash-ios gen
# 或者你也可以通過
bundle exec cucumber --init
上述兩個命令生成的features目錄是不相同的锰瘸,但是不影響
- 執(zhí)行cucumber
bundle exec cucumber
如果執(zhí)行上述命令后驴党,出現(xiàn)錯誤,那是因為cucumber不能找到你的xxx.app获茬,你需要告訴cucumber可以從哪里找到你的xxx.app
Xcode默認(rèn)構(gòu)建的地址是:
~/Library/Developer/Xcode/DerivedData/<UDID>/Build/Products/Debug-iphonesimulator/<NAME>.app
你可以通過:
export ~/Library/Developer/Xcode/DerivedData/<UDID>/Build/Products/Debug-iphonesimulator/<NAME>.app
# 或者
export XCODEPROJ=../<NAME>.xcodeproj
# 開始執(zhí)行
bundle exec cucumber
如何使用cucumber
在這里我以登錄功能為例
- 創(chuàng)建一個Feature
- 生成step
首先根據(jù)你的feature生成step:
bundle exec cucumber -d <NAME>.feature
然后創(chuàng)建一個與你feature相關(guān)的step在steps目錄下港庄,如:loging_step.rb,生成的結(jié)果拷貝到文件中:
- 完善你的step
更多Calabash的用法請查閱Calabash官方網(wǎng)站