fastlane的集成
fastlane是用Ruby语言编写的一套自动化工具集和框架,包括程序的自动部署、发布、测试、截图等;支持多平台包括iOS和Android。
集成
1. 安装fastlane
sudo gem install fastlane -NV
如果报错提示
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for /usr/bin
使用 sudo gem install -n /usr/local/bin fastlane -NV
2. 在项目目录下,执行fastlane init
fastlane_init.png
根据需要选择选项输入,这里我输入4,自定义配置(跑单元测试)
初始化完成之后,会自动生成以下文件如果卡在bundle update可以参照bundle update
解决
![](https://img.haomeiwen.com/i4907887/d0673569635283c0.png)
![](https://img.haomeiwen.com/i4907887/3b0162247808ab80.png)
我们主要按需编辑Fastfile即可,语法可以参照官方文档
下面的例子是跑iOS的单元测试
default_platform(:ios)
platform :ios do
desc "run UnitTestDemoTests and output report"
lane :UnitTestDemoTests do
# add actions here: https://docs.fastlane.tools/actions
run_tests(scheme: "UnitTestDemoTests",
clean: true,
fail_build: false,
configuration: "Debug",
output_types: "html,junit",
output_files: "UnitTestDemoTests.html, UnitTestDemoTests.xml")
end
end
执行单测
1. 工程配置
-
将单元测试的Tests target配置为shared(Xcode - Manage Schemes - 勾选对应target的shared为选中)
select_shared.png
-
需要将单测的Test target配置为run
select_run.png
⚠️ 这步骤不配置的话,在执行单测的时候会有对应的错误提示
2.执行单测
- 终端执行指令
bundle exec fastlane ios xxxTests
-
成功之后会看到日志如下,并在fastlane的test_output下生成报告文件
test_success.png
CI
1.安装Jenkins
下载Jenkins安装包,安装成功之后,会在浏览器弹出
![](https://img.haomeiwen.com/i4907887/a4a2a866eddb9b68.png)
注意安装的时候不要选择共享用户,否则会出现权限问题(将Start at boot as "jenkins"选项去掉)
![](https://img.haomeiwen.com/i4907887/dcba318f94d901cd.png)
-
将密码(写入在initialAdminPassword)拷贝到浏览器的Administrator password栏,点击continue
-
进入配置界面,根据需求选择,然后等待插件的安装
1547431951628.png
-
配置安装完成,进入第一个管理员配置界面,完善信息之后点击 Save and Continue
-
后续步骤,点击下一步即可,最后会进入Jenkins主界面面板
1547432362814.png
至此,Jenkins的配置就配置完成了
- 浏览器输入http://localhost:8080/可以进入Jenkins界面
如果提示无法连接
cd 到jenkins,jar的目录(/Applications/Jenkins/),执行java -jar jenkins.war
2.集成测试
- create new jobs
根据需求创建jenkins job,我选择“构建一个自由风格的软件项目” - 配置job
-
源码管理:选择代码管理工具,输入源码仓库地址和证书以及分支
使用本地项目做的测试--将本地项目拷贝到jenkins的workspace目录的job目录下
使用远端仓库代码
1551257670809.png
-
构建配置
注意执行脚本需要在fastlane的上级目录,必要的时候加上cd到fastlane上级目录的指令
图片.png
-
构建后操作
1551249252511.png
配置邮件发送的时候,如果遇到ERROR: Could not connect to SMTP host
的错误
去Jenkins的“系统管理”-“邮件通知”中配置好服务器和账号;如果使用的是qq邮箱则账号的密码是授权码(不是邮箱的密码)1551322509404.png
- Jenkins构建任务遇到的问题
-
sh: xcpretty: command not found
解决方法:在执行shell的命令里加上#!/bin/bash -ilex - xcpretty报错``===': invalid byte sequence in US-ASCII`这个是由于语言配置问题
方式1:
图片.png
方式2:在shell脚本中加上export LC_ALL=en_US.UTF-8
(推荐)
方式3:设置jenkins系统管理
的环境变量图片.png
- 使用
Editable Email Notification
发送邮件提示MessagingException message: Exception reading response
使用E-mail Notification发送成功;这里需要明白如果你想使用Editable Email Notification,他的配置对应于
系统设置
中Extended E-mail Notification
这种情况去系统管理
--系统设置
--Extended E-mail Notification
--高级
检查这里的配置跟E-mail Notification
(邮件通知)配置是否一样,保证配置是一样的。
网友评论