项目中应用到了Calabash,于是根据官网的步骤试验了一番,也惊艳了一把。
原文地址:
https://github.com/calabash/calabash-ios
http://blog.lesspainful.com/2013/03/15/Testing-Multiple-Android-Apps/
【环境配置】
0. 安装有Ruby, 通过命令:ruby -v 查看;
1. 进入IOS工程所在目录; cd <your project>
2. 安装calabash-cucumber, 需要用sudo,否则可能会没有文件权限
sudo gem install calabash-cucumber
终端结果:
1 gem installed Installing ri documentation for calabash-cucumber-0.9.146... Installing RDoc documentation for calabash-cucumber-0.9.146...
运行命令:calabash-ios setup
或手工配置:查看主页下的Menual setup with Xcode;
[碰到的问题]
A. 自动配置完成后,一运行马上就应用程序crash
[解决]在XCode运行模拟器,启动应用程序之后,应该先退出应用程序;再在终端命令行执行:cucumber;这样会把
应用程序重新调起来;
[注]在后来的测试中,又发现这并不是主要原因;在手工配置完成,可以run之后,命令行方式也可以work了
B. 手工配置的时候,根据主页的步骤完成,有24个编译错误。
[解决]忘记添加了CFNetwork.framework
4. 产生Feature文件
终端执行命令:calabash-ios gen
5. 在XCode中buildXXX-cal工程,启动模拟器,在程序运行后退出;
6. 在终端执行命令:cucumber
【文件解析】
my_first_step.rb:
Given /^I am on the Welcome Screen$/ do element_exists("view") check_element_exists("label text:'First View'") sleep(STEP_PAUSE) end
my_first.feature:
Feature: Running a test As an iOS developer I want to have a sample feature file So I can begin testing quickly Scenario: Example steps1 Given I am on the Welcome Screen Then I swipe left And I wait until I don't see "Please swipe left" And take picture Scenario: Example steps2 Given I am on the Welcome Screen #ASSERTION Then I should see a "login" button #INPUT TEXT Then I enter "my_username" into text field number 1 # Then I touch "Return" #TOGGLE SWITCH Then I toggle the switch Then I touch "Login" And I touch "Second" And take picture
总的来说,my_first_step.rb,解释了Given的具体条件,而my_first.feature,则是描述在这个条件下需要
做什么事情;
【问题】
1. feature中的一些解释性的工作,是否都可以放在rb文件中呢?
2. feature中,一个Scenario就会使应用程序重新启动一次?