Using Calabash for iOS Automated Acceptance Testing

####AUTOMATED ACCEPTANCE TESTING FOR MOBILE APPS

项目中有用到其来做iPad自动化测试,效果很不错,所以这里做个推荐。

Calabash是为移动应用定制的自动化验收测试工具,可同时支持Android, iOS平台。其使用Cucumber的BDD语法,和自然语言相近。因为其是Build在Ruby之上的,所以需要一点Ruby的语法,但可以放心的是,这很简单.

官网地址:http://calaba.sh/
项目地址:https://github.com/calabash

####安装

在这里可以找到iOS项目的源码,下面也有详细的安装方式。这里简要说明一下。
https://github.com/calabash/calabash-ios

因为Calabash和其使用的Cucumber工具都是基于Ruby来构建的,但Mac平台上是默认安装Ruby环境的,所以只需要安装Calabash-cucumber即可。

gem install calabash-cucumber

如果遇到权限问题,请试着使用

sudo gem install calabash-cucumber

在项目根目录下运行下面一行来对项目进行calabash的配置。可能会根据提示要求关闭XCode。

calabash-ios setup

这一步主要的工作就是下载Calabash.framework和创新一个新的Project-cal命名的scheme。

至此,Calabash的配置已经结束了。但为了快速使用,我们可以让calabash自动生成一些配置文件和测试脚本。

calabash-ios gen

你会看到一个名为features的目录被创建,其中有my-first.feature文件。

每个新加入的项目都要手工Run一下Project-cal,然后在项目根目录下运行

cucumber

可以看到测试脚本运行通过的输出,表示配置完成。

当然也可以手工来配置,具体参见页面上的教程。

####原理

Calabash会在当前项目中加入calabash.framework,其中集成了Frank Server,并创建一个新的Schme,配置该Scheme启动时调用calabash,启动Frank Server,创建通信端口,这样calabash-cucumber启动后会和部署设备上的该端口通信,然后将要执行的script指定发给calabash,由其执行。将结果发给cucumber。

####示例

截图

####参考

CALABASH: FUNCTIONAL TESTING FOR MOBILE APPS