热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境

使用jenkins+calabash+cocoapods搭建ios持续集成环境持续集成持续集成究竟是什么呢?根据敏捷大师MartinFowler的定义:持续集成是一种软件开发实践。在



使用jenkins+calabash+cocoapods搭建ios持续集成环境

持续集成

持续集成究竟是什么呢?根据敏捷大师Martin Fowler的定义:

持续集成是一种软件开发实践。在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。许多团队发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度。

只要是开发就有分工,哪怕是自己一个写也要分成多个模块。随着项目越来越大,模块也越来越多,各个模块是否可以征程协作就成了问题,有了持续集成,可以有如下好处:

  1. 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;
  2. 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;
  3. 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。

下面就给大家介绍,如何使用Jenkins+Calabash搭建持续集成开发环境。

环境

XCode 5.0

Mac OS X 10.9.2

Cocoapods

CocoaPods简介

CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过一年多的发展,现在已经超过1000次提交,并且持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。

安装Cocoapods

安装Homebrew

Homebrew是Mac下著名的包管理工具,RVM和以后用到xctool都需要用这个来安装,相当于Ubuntu的Apt-get。

安装方法是在命令行中键入

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

之后执行环境检查

brew doctor

检查没有错误就可以使用了,如果出现错误,请参考提示进行修正。

确认无误后,可以安装第一个应用curl,一个用来下载的工具。使用命令

brew install curl

安装RVM

虽然Mac默认都带有Ruby,但是有些时候使用起来很麻烦(例如必须使用sudo来安装gem)并且只有一个版本,所以我们使用RVM来管理ruby的版本,ruby是自动化测试工具calabash的运行环境,所以必须要有。

安装方法是命令行中键入

\curl -sSL https://get.rvm.io | bash -s stable

过程中可能需要输入sudo密码。

使用淘宝源替换

sed -i .bak 's!cache.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db

安装Ruby

使用rvm下载ruby2.0版本

rvm install 2.0.0

选用2.0.0版本的ruby,并设置为默认

rvm use 2.0.0 --default

使用淘宝源替换gem源

rvm source --add http://ruby.taobao.org/
rvm source --remove https://rubygems.org/

安装Cocoapods

CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。

通过Gem安装Cocoapods

gem install cocoapods

执行cocoapods的初始化

pod setup

该过程需要到github上拉取specs,速度很慢,可以喝杯咖啡慢慢等

使用Cocoapods

首先创建一个普通项目来演示下如何使用Cocoapods。


之后在命令行里面,进入到你的项目路径

cd /path/to/your/project
pod init

之后会在项目根目录下创建好Podfile,修改下Podfile的内容

1
2
3
4
 # #为Podfile的注释行,Podfile实际上是一个ruby代码段
platform :ios, "6.0" # platform后面跟平台和版本号,这里是ios6平台

# pod 'MKNetworkKit' 像这样写就可以引入第三方库了,为了简化,这里没有引入任何库

在目录执行pod插件install命令

pod install 

每次使用pod install,它都会到github上更新spec库,耗费了不少时间,可以使用下面的命令跳过这个过程

pod install --no-repo-update

执行之后,会提示没有引入任何的第三方库,不要担心(因为我们真的没有引入)。你会发现目录上多了integration_test.xcworkspace这个工作区文件,以后我们就都使用这个打开项目了。

打开后如图所示

恭喜您,已经可以正常使用Cocoapods了。下一步就是使用Calabash进行自动化测试了。

Calabash

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

安装Calabash

gem install calabash-cucumber

安装Calabash中文支持包

gem install calabash-cucumber-cn

新建集成测试的Target

重新打开工作区,然后选择integration_test这个工程,打开配置,targets中integration_test上右键进行复制。

如果出现Duplicate iPhone Target对话框,选择Duplicate Only就可以,另外一个选项是复制并转换成iPad程序。

之后修改目标的名称

修改项目配置 

修改scheme

共享scheme,目的是在版本管理中,让其他用户也可以获取到这些scheme

这样新的测试目标就创建好了,为什么要创建新的目标呢?

  1. 不希望在发布的产品中包含测试代码
  2. calabash默认启动-cal结尾的目标

引入Calabash包

修改Podfile文件,加入新的pod

1
2
3

            var cpro_id = "u6885494";

        
        
    


    



    

    
推荐阅读
author-avatar
唐进单
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有