原創
2017-03-16ios
直接進入正題,關於Jenkins環境搭建、Ruby環境配置、fastlane使用
等請參考個人另外一片文章 基於Jenkins搭建iOS持續集成開發環境xcode
gem install calash-cucumber calabash-ios
因爲咱們這裏使用了fastlane來進行自動化構建,建議你:ruby
fastlane init # 按照提示輸入你的AppId,工程Bundle Identifier(若是在AppStore上沒有該Identifier) touch Gemfile # 成功以後,進入到你的fastlane文件夾建立一個Gemfile的文件 #在文件中添加以下內容(根據本身項目須要添加) ###### 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 # 在終端執行此命令,至此前期準備工做已經完成
在工程中若是爲了使用Calabash,須要將calabash.framework與工程關聯起來,calabash.framework是Objective-C的,一樣也適用於使用Swift工程。
有三種方式能夠集成:bash
建立一個新的Configuration, 名字能夠隨意,可是這裏咱們既然功能測試使用的是Calabash,不妨就使用 Calabash 這個名稱
app
下載Calabash.framework,還記得以前咱們準備階段的Gemfile嗎?你如今須要在文件裏面添加上:iphone
gem "calabash-cucumber", ">= 0.16", "< 2.0" # 這裏你也能夠不用寫出版本號直接 gem "calabash-cucumber" 便可 # 而後你就能夠在Gemfile所在的目錄執行下列語句來下載了 bundle exec calabash-ios download
-ObjC -force_load # 這裏必定要看看你的路徑是否正確,我這裏由於用到fastlane就多了一個fastlane "$(SOURCE_ROOT)/fastlane/calabash.framework/calabash" -framework CFNetwork
建立一個新的scheme
測試
開始構建運行,請記住你在上一步驟配置的Calabash scheme,選擇並運行便可,若是出現下圖結果,代表配置成功 網站
# 生成features文件結構 bundle exec calabash-ios gen # 或者你也能夠經過 bundle exec cucumber --init
上述兩個命令生成的features目錄是不相同的,可是不影響ui
bundle exec cucumber
若是執行上述命令後,出現錯誤,那是由於cucumber不能找到你的xxx.app,你須要告訴cucumber能夠從哪裏找到你的xxx.app
Xcode默認構建的地址是:code
~/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 # 開始執行 bundle exec cucumber
在這裏我以登陸功能爲例
bundle exec cucumber -d <NAME>.feature
而後建立一個與你feature相關的step在steps目錄下,如:loging_step.rb,生成的結果拷貝到文件中:
更多Calabash的用法請查閱Calabash官方網站