首页 > 解决方案 > 在同一 iOS 设备上使用 xcodebuild 运行并行测试

问题描述

我有一个项目,它有一个 Xcode 测试套件,我想通过使用“xcodebuild ... 测试”命令来实现一个 CI 系统。我唯一的限制是硬件。我仅限于 2 台 Mac 和 2 台 iPad,而且我还想为 Debug 和 Release 构建。问题是我有不同的应用程序风格,我想在一台 iPad 上运行其中的一部分(例如调试时的所有风格),而在另一台 iPad 上运行其他风格。我尝试使用“tests”参数多次调用“xcodebuild”命令,希望它会被并行化,但问题是它会杀死已经在设备上运行的测试应用程序实例。

我花了一些时间寻找这样做的人,但唯一接近我需要的是使用多个 iOS 模拟器,我不舒服,因为该项目需要真实的设备测试。

是否可以在同一设备上运行并行测试?我是否缺少一些需要添加到 xcodebuild 命令的参数?

标签: iosiphoneipadcontinuous-integrationxcodebuild

解决方案


不,您一次只能在一台设备上运行一项测试操作。这就是人们使用多个模拟器的原因,因为如果您需要多次运行相同的测试,您可以将它们全部设置为相同的操作系统。

不是您正在寻找的答案,但您可以使用 Xcode 服务器来拥有多个机器人,每种机器人都有一个。如果它们都指向同一个 repo / 分支,那么它们应该一个接一个地运行。这将意味着更少的手动工作来构建一个工具来做到这一点。

我还以为我在某处读到使用 Xcode 10 可以跨多个 Xcode 服务器进行负载平衡,但找不到指向它的链接。如果您有 2 台机器,这可能会有所帮助。如果不是,您可以在两个 Xcode 服务器上复制机器人。也许使用 API 来控制机器人的创建?

Xcode 服务器设置指南


推荐阅读