前提:

mac 设备,安装 xcode,ruby

步骤:

  1. 安装 gem 包

命令行输入:gem install calabash-cucumber

如果有权限问题的话可以使用 sudo gem install calabash-cucumber

  1. 进入被测项目的路径下,即包含 .xcodeproj 文件的目录中

  2. 在被测工程中安装 calabash

命令行输入:calabash-ios setup

  1. 自动创建一个简单的测试用例(可选)

命令行输入:calabash-ios gen

该命令自动建立一个 feature 文件夹,里面有条测试用例,可以检验配置是否成功,如果有已经写好的脚本了可以跳过该步骤,直接将已有的 feature 目录放过来

  1. 在 xcode 打开被测项目,检查 scheme,发现多了一个后缀带有 -cal 的,这个就是加入 calabash.framework 的可以运行自动化化脚本的程序了

  2. 运行这个程序,检查程序是否配置成功

运行后检查 console 输出,如果配置成功后会有以下输出: HTTPServer: Started HTTP server on port 37265

  1. 关闭这个程序,回到命令行

输入 cucumber,运行自动化脚本

Q&A:

  1. mac 会自带 ruby,如果安装 gem 出现下载缓慢或失败,请更换为淘宝源
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 
  1. 如果被测项目是个 workspace 包含多个 project,那么请寻找运行哪个 project 的 scheme 可以运行起来你期望被测试的 app,就进入到那个对应目录下

  2. setup 时可能出现失败,一般是由于 xcode 或者 instruments 在已经运行(后台退出,kill 进程),或者已经有-cal 的文件存在(进入 xcode 删除对应-cal),或者没有找到 scheme(进入 xcode,运行一次程序,或者将其 scheme 设置为 shared)

  3. 没听说过第四步出错…… 因为只是生成一个 demo,后续级别用不上这个命令

  4. 如果没有发现有这个输出,那就悲剧了,只能手动去生成,步骤如下
    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

  5. 如果以上都没有问题的话, 第七步应该会很顺利的运行脚本


↙↙↙阅读原文可查看相关链接,并与作者交流