我可以在 Xcode Server 中的所有设备上运行单元测试并仅在 iOS 9.x 设备上运行 UI 测试吗?

Posted

技术标签:

【中文标题】我可以在 Xcode Server 中的所有设备上运行单元测试并仅在 iOS 9.x 设备上运行 UI 测试吗?【英文标题】:Can I run UnitTests on all devices and UITests only on iOS 9.x devices in Xcode Server? 【发布时间】:2015-10-14 09:44:30 【问题描述】:

所以我花了一些时间在 Xcode 7 中实现第一个 UITest,以自动测试我们应用中的主要工作流程。本地一切顺利。

但是,当我将 UITests 推送到 C.I. (Xcode 服务器)构建中断并显示以下日志消息:

xcodebuild: 错误: 无法使用方案构建工作区 mycoolapp 我的酷应用程序。

原因:“iPad 2”不支持 UI 测试,因为它 正在运行 ios Simulator 8.1 并且 UI 测试需要 iOS Simulator 9.0 或更高版本。

4.684 (4.687) 秒测试套件“mycoolappUITests.xctest”在 2015-10-14 11:21:45.242 失败。 执行 2 次测试,在 12.217 (12.229) 秒内有 2 次失败(0 次意外)

所以我的理解是 UITests 仅受 iOS 9.x 设备支持(这是合理的)。

我不明白的是,我似乎无法将 Xcode Bot 配置为仅在某些设备上运行 UITests 并在所有设备上运行 UnitTests。

我是对的还是我缺少配置选项?有人遇到过同样的问题吗?

【问题讨论】:

这里有同样的问题。仍在寻找解决方案。 【参考方案1】:

我认为您应该能够创建一个新方案来运行您的 UI 测试并取消选中编辑方案中的测试操作中的单元测试。

稍后您可以通过指定 UI 测试方案、选择“执行测试操作”并选择连接到您的服务器的 iOS9 设备来配置您的新机器人设置。

您可以继续在所有 iOS 设备和模拟器上使用现有机器人运行单元测试。

【讨论】:

感谢您的输入,我已经启动并运行了此配置。缺点是,UI 测试期间的错误必须手动与“正常”机器人的构建相匹配。无法指定机器人之间的依赖关系,因此持续交付被破坏(或者不考虑 UI 测试,这使得它们有点过时/无用)。

以上是关于我可以在 Xcode Server 中的所有设备上运行单元测试并仅在 iOS 9.x 设备上运行 UI 测试吗?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8 App安装失败,出现未知错误

使用 XCode 4.2 在设备 4.2.1 上运行

推送通知不适用于 iPhone 所有设备 (Xcode8) 版本

Xcode Server CI Bot 测试会话已退出(-1)

XCode 4.5 中的代码签名身份

停止和卸载 Xcode 服务