前提:
mac 设备,安装 xcode,ruby
步骤:
命令行输入:gem install calabash-cucumber
如果有权限问题的话可以使用 sudo gem install calabash-cucumber
进入被测项目的路径下,即包含 .xcodeproj 文件的目录中
在被测工程中安装 calabash
命令行输入:calabash-ios setup
命令行输入:calabash-ios gen
该命令自动建立一个 feature 文件夹,里面有条测试用例,可以检验配置是否成功,如果有已经写好的脚本了可以跳过该步骤,直接将已有的 feature 目录放过来
在 xcode 打开被测项目,检查 scheme,发现多了一个后缀带有 -cal
的,这个就是加入 calabash.framework
的可以运行自动化化脚本的程序了
运行这个程序,检查程序是否配置成功
运行后检查 console 输出,如果配置成功后会有以下输出: HTTPServer: Started HTTP server on port 37265
输入 cucumber,运行自动化脚本
Q&A:
gem sources --remove http://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l
*** CURRENT SOURCES ***
http://ruby.taobao.org
# 请确保只有 ruby.taobao.org
如果被测项目是个 workspace 包含多个 project,那么请寻找运行哪个 project 的 scheme 可以运行起来你期望被测试的 app,就进入到那个对应目录下
setup 时可能出现失败,一般是由于 xcode 或者 instruments 在已经运行(后台退出,kill 进程),或者已经有-cal 的文件存在(进入 xcode 删除对应-cal),或者没有找到 scheme(进入 xcode,运行一次程序,或者将其 scheme 设置为 shared)
没听说过第四步出错…… 因为只是生成一个 demo,后续级别用不上这个命令
如果没有发现有这个输出,那就悲剧了,只能手动去生成,步骤如下
a. duplicate 被测程序的 target,重命名加入-cal 的后缀
b. 下载 framework 命令行:calabash-ios download
c. 将该 calabash.framework 加入被测-cal 这个 target 中
d.加入 xcode 自带的 CFNetwork.framework 到-cal target 中
e. 在-caltarget 中,打开 build setting-》找到 Other linker flags,加入-force_load "$(SRCROOT)/calabash.framework/calabash" -lstdc++
f. 运行-cal 这个 target 确保 会有以下输出: HTTPServer: Started HTTP server on port 37265
如果以上都没有问题的话, 第七步应该会很顺利的运行脚本