【问题标题】:Multiple concurrent iOS simulator多个并发iOS模拟器
【发布时间】:2013-08-29 18:16:07
【问题描述】:

我正在设置 iOS 自动构建/测试流程。我用过的一些工具是,

  • Bamboo CI(如 Jenkins)
  • 葫芦-ios
  • 一些自酿的 bash 来包装结帐/构建/测试流程
  • 只有模拟器运行测试,暂时没有真机
  • 专用于自动构建/测试的 Mac mini

为了使复杂的测试用例并行运行,需要多个模拟器同时运行。我使用this tool 启用了多个模拟器(默认情况下iOS 模拟器不允许多个实例),现在我可以在不同用户的不同VNC 控制台中运行它们到我的Mac mini。

然后我遇到了另一个问题,Calabash iOS 框架似乎硬编码了端口(37265)以供外部连接(黄瓜客户端库),所以我仍然无法运行并发 Calabash 测试,因为不同的模拟器实例会在同一个端口 127.0 上发生冲突.0.1:37265.

但是,calabash-cucumber 允许指定要连接的测试设备(或模拟器)的 ip:port,如果我可以预先创建监听不同 ip 的模拟器,则显式加载应用程序并告诉 cucumber 连接到指定的 ip:port ,那么并发测试的想法仍然有效。但似乎 iOS 模拟器以某种方式被硬编码为听 127.0.0.1 接口,对吧?知道如何告诉模拟器将自己桥接到指定的网络接口吗?如果可行,只需设置多个测试用户 + 多个网络接口即可在 iOS 模拟器上进行并行测试。

但如果我做错了,也请告诉我。谢谢。

【问题讨论】:

    标签: ios continuous-integration ios-simulator calabash


    【解决方案1】:

    现在可以通过将以下三元组添加到应用程序的 Info.plist 来基于每个应用程序更改 Calabash 端口:

    CalabashServerPort NSNumber < port number >
    

    您仍然会受到 Apple 对工具进程的限制:只能有一个活动的工具进程。此外,如果 Instruments.app 已打开,则 Instruments 命令行工具将无法工作。

    其他帖子建议使用虚拟机,但我没有这方面的经验。

    【讨论】:

      猜你喜欢
      • 2016-07-29
      • 1970-01-01
      • 2011-07-07
      • 2011-04-24
      • 2015-01-08
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 2021-09-14
      相关资源
      最近更新 更多