在 Jenkins 中调用快照会导致模拟器超时

Posted

技术标签:

【中文标题】在 Jenkins 中调用快照会导致模拟器超时【英文标题】:Calling Snapshot in Jenkins results in Time out for Simulator 【发布时间】:2015-12-01 20:34:38 【问题描述】:

我正在使用来自FastLane 套件的Snapshot。

出于我的目的,我从脚本中调用各种工具,并传入我用作输入的适当环境变量。

当我在 Jenkins 和命令行中调用我的脚本时遇到问题。当我在 Jenkins 的构建步骤中调用脚本时,结果是来自 Snapshot 的一条消息,指出该进程在等待 120 秒以使模拟器启动后超时。如果我从终端运行相同的脚本,快照会按预期运行而不会出错。

例子:

snapshot \
--workspace "MyWorkspace.xcworkspace" \
--scheme "MyScheme" \
--output_directory "MyOutputDirectory" \
--clear_previous_screenshots \
--stop_after_first_error

(--devices --languages can be found in ./Snapfile)

快照文件:

devices([
  "iPhone 4s"
])

languages([
  "en-US"
])

我错过了什么吗?

【问题讨论】:

【参考方案1】:

配置 Jenkins 以用于 ios 测试和自动化并不是一项简单的任务,有很多陷阱。

Jenkins 结果是来自 Snapshot 的一条消息,说该进程在等待 120 秒以等待模拟器启动后超时。

这表明您的 Jenkins 机器无法运行模拟器。如果jenkins 用户无法启动 UI 会话,就会发生这种情况。

这两篇文章提供了有关如何为 iOS 开发配置 Jenkins 的有用信息:

https://blog.pivotal.io/labs/labs/ios-ci-jenkins http://staxmanade.com/2015/01/setting-jenkins-up-to-run-xctool-and-xcode-simulator-tests/

第二个特别解决了 Jenkins 不作为 GUI 用户运行的问题。

祝你好运。

【讨论】:

以上是关于在 Jenkins 中调用快照会导致模拟器超时的主要内容,如果未能解决你的问题,请参考以下文章

使用proxyquire和mocha在单元测试中模拟方法调用时如何模拟时间延迟(超时)?

简单几招模拟网络超时情况

iPhone 6 设备和模拟器上的快照方法损坏

如何模拟数据库连接超时

使用 PHP 和 jQuery 模拟推送通知会导致服务器问题

Swift 3 / 为啥快照视图中的快照在 iPhone 7 Plus 模拟器中显示为空白?