iOS 开发 iOS DeveloperiOS进阶

【BDD】calabash 和 cucumber的使用

2015-11-26  本文已影响699人  十三亿少女梦丶

本文介绍的是BDD的开发新框架之一-----Calabash-ios

Calabash是一款开源的跨平台UI测试工具,目前支持iOS和Android。它使用Cucumber作为测试核心,Cucumber是一个在敏捷团队十分流行的自动化的功能测试工具,它使用接近于自然语言的特性文档进行用例的书写和测试,支持多语言和多平台。

Calabash-ios 简单步骤:

1.安装ruby gem

2.安装calabash-cucumber,安装后你的mac机器上应该能够使用calabash-ios命令了

3.git clone或者svn co下来你IOS代码,IOS工程主目录是有一个.xcodeproj的文件的,找到它进入到该目录

4.calabash-ios setup

5.calabash-ios gen

6.In Xcode, build your project using the -cal scheme

7.cucumber

以下是详细步骤:

前期准备工作

Calabash是一个ruby的库文件,为避免Calabash在运行中出现各种问题,尽量保证电脑中的ruby环境是最新版的,或者2.1以上版本。mac系统 10.11自带的是2.0版本的.需要升级到最新版本 建议升级ruby 用RVM 工具统一管理ruby库。

详细步骤:点击此处查看

如果使用RVM升级时出错!!还有大招:通过ruby-install安装(一定要安装到RVM中方便统一管理ruby) 方法如下:

Using ruby-install with RVM:

$ ruby-install --rubies-dir ~/.rvm/rubies ruby 2.2.2

安装完成之后再用RVM 的查看ruby库列表 然后设置默认ruby库:点击此处查看

一:基础环境搭建 Calabash-ios

Calabash-ios官方wiki 提供了三种方式的xcode工程环境配置。点击查看

其中最合理的应该是:添加Calabash Config配置文件这种,相比修改debug config这种来说,不会影响项目中原有的config文件,相比添加 -cal targert这种来说,也不会影响项目中工程文件的修改,当项目中导入其他文件时需要同时导入到原target和-cal target中,而添加Calabash Cofig这种则不会。

需要注意的是,在根据Calabash cofig这种方法配置环境时该步骤:

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.在项目根目录中创建文件名为 Gemfile 的文件,文件中写入如下内容(需要注意ruby的官方镜像毕竟慢,可以使用大淘宝的镜像):

source "https://ruby.taobao.org"

gem "calabash-cucumber", ">= 0.16", "< 2.0"

3安装相应的calabash-cucumber库.

命令行切换到工程根目录下 输入$:bundle

4.如果需要更新Gemfile文件中的库版本,可以通过:

切换到工程根目录 命令行输入$:bundle update

二:测试用例编写及其运行 Cucumber

1.创建cucumber必要的文件

命令行 切换到工程根目录$:calabash-ios gen

就会创建feature的文件夹 文件夹下放着测试用例编写,必须的文件:相关目录结构及其功能,(cucumber的使用)可以看此处

2.编写cucumber测试用例

相信通过上面cucumber的使用这一文章已经基本了解cucumber的目录结构:下面就开始编写简单地测试用例吧:

cucumber 测试用例编写需要一定的时间去了解它的基本的语法的,所以不要着急先看看一个非常全面的demo吧:官方demo当然先大体看下demo了解下结构和语法,要想真正看懂需要继续补充一些知识。以下就是需要结合demo看的文章(大部分文章都是从calabash官方wikiCucumber 官方wiki中可以获得):

1).cucumber 目录结构介绍 官方wiki

2).calabash 官方wiki --- Calabash iOS Ruby API

3).calabash 官方wiki --- Query Language

4).calabash 官方wiki --- public API

5).最重要的还是看demo 进行学习其他demo

3.运行cucumber测试用例

运行cucumber的时候特别注意:

1).首先运行 对应的项目.如果项目中打印出以下语句及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 执行命令。需要注意的是:『cucumber运行,启动的模拟器』 一定要跟 『运行工程时,启动的模拟器』 一致否则会发生错误

查看工程运行的模拟器UUID两种方法:

1.方法一 :Xcode -> Window -> Devices 查看对应的模拟器UUID

2.方法二 :命令行输入$: xcrun instruments -s devices

执行 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 学习网站

上一篇下一篇

猜你喜欢

热点阅读