在同一 iOS 设备上使用 xcodebuild 运行并行测试
Posted
技术标签:
【中文标题】在同一 iOS 设备上使用 xcodebuild 运行并行测试【英文标题】:Run parallel tests using xcodebuild on the same iOS device 【发布时间】:2018-10-24 08:46:03 【问题描述】:我有一个项目,它有一个 Xcode 测试套件,我想通过使用“xcodebuild ... 测试”命令来实现一个 CI 系统。我唯一的限制是硬件。我仅限于 2 台 Mac 和 2 台 iPad,而且我还想为 Debug 和 Release 构建。问题是我有不同的应用程序风格,我想在一台 iPad 上运行其中的一部分(例如调试时的所有风格),而在另一台 iPad 上运行其他风格。 我尝试使用“tests”参数多次调用“xcodebuild”命令,希望它会被并行化,但问题是它会杀死已经在设备上运行的测试应用程序实例。
我花了一些时间寻找这样做的人,但唯一接近我需要的是使用多个 ios 模拟器,我不习惯,因为该项目需要真实的设备测试。
是否可以在同一设备上运行并行测试?我是否遗漏了一些需要添加到 xcodebuild 命令的参数?
【问题讨论】:
【参考方案1】:不,您一次只能在一台设备上运行一项测试操作。这就是人们使用多个模拟器的原因,因为如果您需要多次运行相同的测试,您可以将它们全部设置为相同的操作系统。
不是您要寻找的答案,但您可以使用 Xcode 服务器来拥有多个机器人,每个机器人都有一个。如果它们都指向同一个 repo / 分支,那么它们应该一个接一个地运行。这意味着构建工具的手动工作更少。
我还以为我在某处读到过,使用 Xcode 10 您可以在多个 Xcode 服务器之间进行负载平衡,但找不到指向它的链接。如果您有 2 台机器,这可能会有所帮助。如果不是,您可以在两个 Xcode 服务器上复制机器人。也许使用 API 来控制机器人的创建?
Xcode server setup guide
【讨论】:
以上是关于在同一 iOS 设备上使用 xcodebuild 运行并行测试的主要内容,如果未能解决你的问题,请参考以下文章