组件开发之-基于Jenkins使用Calabash配置iOS功能

2017-03-16  本文已影响246人  一根聪

原创 2017-03-16

直接进入正题,关于Jenkins环境搭建、Ruby环境配置、fastlane使用等请参考我的另一片文章 基于Jenkins搭建iOS持续集成开发环境

通过Ruby 的gem安装calabash

 gem install calash-cucumber  
 calabash-ios

新建一个工程 CalabashSample

由于我们这里使用了fastlane来进行自动化构建,建议你:

  fastlane init  # 按照提示输入你的AppId,工程Bundle Identifier(如果在AppStore上没有该Identifier)
  
  touch Gemfile  # 成功之后,进入到你的fastlane文件夹创建一个Gemfile的文件

  #在文件中添加如下内容(根据自己项目需要添加)
  ###### start #####
  source 'https://gems.ruby-china.org/'

  gem 'fastlane', '2.20.0'
  gem 'slather', '2.3.0'
  gem 'gym', '2.0.0'
  gem 'xcov'
  
  #### end ####

  bundle install  # 在终端执行此命令,至此前期准备工作已经完成
  

集成calabash.framework到工程

在工程中如果为了使用Calabash,需要将calabash.framework与工程关联起来,calabash.framework是Objective-C的,同样也适用于使用Swift工程。
   有三种方式可以集成:

  gem "calabash-cucumber", ">= 0.16", "< 2.0"
 # 这里你也可以不用写出版本号直接 gem "calabash-cucumber" 即可  
  # 然后你就可以在Gemfile所在的目录执行下列语句来下载了
  bundle exec calabash-ios download
  1. 把calabash.framework与工程关联,添加如下关联flags
  -ObjC 
-force_load
# 这里一定要看看你的路径是否正确,我这里因为用到fastlane就多了一个fastlane
 "$(SOURCE_ROOT)/fastlane/calabash.framework/calabash" -framework  
CFNetwork
  1. 创建一个新的scheme



  2. 开始构建运行,请记住你在上一步骤配置的Calabash scheme,选择并运行即可,如果出现下图结果,表明配置成功



在模拟器上运行Calabash

  # 生成features文件结构
  bundle exec calabash-ios gen  
  # 或者你也可以通过
  bundle exec cucumber --init

上述两个命令生成的features目录是不相同的,但是不影响

  bundle exec cucumber

如果执行上述命令后,出现错误,那是因为cucumber不能找到你的xxx.app,你需要告诉cucumber可以从哪里找到你的xxx.app
Xcode默认构建的地址是:

~/Library/Developer/Xcode/DerivedData/<UDID>/Build/Products/Debug-iphonesimulator/<NAME>.app

你可以通过:

  export ~/Library/Developer/Xcode/DerivedData/<UDID>/Build/Products/Debug-iphonesimulator/<NAME>.app 
  # 或者
  export XCODEPROJ=../<NAME>.xcodeproj

  # 开始执行
  bundle exec cucumber

如何使用cucumber

在这里我以登录功能为例

  bundle exec cucumber -d <NAME>.feature

然后创建一个与你feature相关的step在steps目录下,如:loging_step.rb,生成的结果拷贝到文件中:

更多Calabash的用法请查阅Calabash官方网站

上一篇 下一篇

猜你喜欢

热点阅读