最近一直在研究持续集成、单元测试、自动化的东西。这些东西是明显能够提高我们工作效率、保证我们编码质量的工具。对我们的编码工作有很大的帮助,而且一次配置,一直受用的。
持续集成
Travis CI
这个我想大家都了解,对于开源项目的持续集成是免费的,但是对于私有的是收费的,而且价格还蛮高的。去了解了下,发现使用还是蛮简单的,跟GitHub搭配的很好,适合开源项目。
但是公司的代码都是托管在自己的服务器上的,如果要使用Travis CI。首先必须在GitHub上建私有的仓库,然后到Travis CI上付费才能使用。所以对于这一笔开销其实是不必要的,而且还有其它的持续集成的工具可以选择。
Jenkins
估计很多公司都在用Jenkins,我司也是使用的Jenkins。我司Jenkins的安装、配置都是测试组的同事完成的,每天会定时打包,所以不会每一次提交代码都进行持续集成。而且我们项目里面没有测试的代码,所以我们把Jenkins基本就是当作一个打包工具在使用而已。
Jenkins的安装、配置、使用我就不啰嗦了,我也没去了解。
单元测试
单元测试这一块了解的不多,反正我自己的项目是很少写测试代码的。TDD、BDD类型的测试框架很多,没有研究过,之后空了单开一篇做下记录。
自动化
自动化工具也有很多,这里主要介绍fastlane
。
fastlane
是一个为iOS,Mac,Android开发人员做自动化任务的工具,比如生成截图、处理Provisioning Profiles,发布你的应用程序。准确的说,fastlane
一个工具集合,整合了其它很多自动化工具。
你可以使用lane
来定义你的处理步骤:
lane :beta do
increment_build_number
cocoapods
match
testflight
sh "./customScript.sh"
slack
end
然后你只需要运行fastlane beta
就能为你的应用程序部署一个新的’beta’版本。
安装
sudo gem install fastlane --verbose
确保你已经安装了最新版本的Xcode command line tools:
xcode-select --install
如果你觉得fastlane启动缓慢,尝试运行:
gem cleanup
系统要求:fastlane要求Mac OS X 或者 Linux使用Ruby2.0.0及以 上版本。
如果你想要查看已经使用了fastlane
的项目,点击 fastlane-examples ,包括已经设置好fastlane
的Wikipedia、Product Hunt、MindNode等项目。
快速开始
fastlane
的设置助理会在你开始使用前创建所有必需的文件,使用从iTunes Connect或者Google Play上已经存在的App元数据。
- cd [your_project_folder]
fastlane init
- 跟着设置助理来配置你的应用程序
- 使用额外的 actions 来自定义
Fastfile
(基于Ruby)
更多细节,查看 fastlane guide 。
可用命令
通常你会使用fastlane
命令来触发独立的lane:
fastlane [lane_name]
其它命令
fastlane actions
:列出所有可用的fastlane
的actionsfastlane action [action_name]
:显示action的更多细节的描述fastlane lanes
:列出所有可用的lane,附带描述fastlane list
:列出所有可用的lane,没有描述fastlane new_action
:为fastlane创建新的action
fastlane
工具链
除了fastlane
的命令,你还可以连接fastlane
的工具:
-
deliver
:上传截图、数据、App到 App Store -
supply
:将你的Android应用和数据上传到 Google Play -
snapshot
:将你iOS应用在每一种设备上进行本地化自动截图 -
screengrab
:Android版snapshot
,一样的功能 -
frameit
:快速将你的截图放入到适合的设备框中 -
pem
:自动生成和更新你的推送通知证书 -
sigh
:管理你的 provisioning profiles -
produce
:使用命令行工具在 iTunes Connect 和 Dev Portal 上创建新的iOS应用 -
cert
:自动创建和维护iOS的 code signing certificates -
spaceship
:一个 Ruby library,自动连接 Apple Dev Center 和 iTunes Connect -
pilot
:管理你TestFlight测试人员的最好方式,使用终端构建 -
boarding
:邀请你 TestFlight 的beta测试人员的最简单方式 -
gym
:构建你iOS应用程序 -
match
:使用Git在你的团队中同步你的 certificates 和 profiles -
scan
:为你iOS和Mac应用运行测试的最简单方法