有没有办法加快从崩溃中恢复

Is there a way to speed up recovery from a crash

我正在尝试找到一种方法,在发现崩溃后将 Calabash 切换到下一个场景

Retrying.. HTTPClient::ReceiveTimeoutError: (execution expired)
Retrying.. HTTPClient::ReceiveTimeoutError: (execution expired)
Failing... HTTPClient::ReceiveTimeoutError

否则,Calabash 可能需要最多半小时才能重新建立与模拟器的连接并开始下一个场景。

half an hour before Calabash reestablish connection to Simulator

这很不寻常,通常表示 UIAutomation 有问题。

你看过Hot Topics page吗?特别是:

NSLog 输出可能会导致应用在测试期间无响应。

我最好的猜测是仪器由于某种原因挂起。下面,我提供了有关影响启动和连接 Calabash 服务器的各种变量及其默认值的详细信息。

我不认为调整以下任何变量会对您的情况产生影响。

报告问题

将来,请包含在 Calabash iOS Wiki 主页上找到的 in the Report Problems section 的详细信息。

环境变量

您可以找到有关所有 Calabash iOS 环境变量的文档 here

您可以使用多个变量来控制 Calabash 等待响应的时间。

在 Calabash iOS 中,在测试开始之前需要发生两件事:

  1. instruments 命令行工具必须启动该应用程序并响应它已启动该应用程序。
  2. Calabash 必须与嵌入式服务器建立连接。

您可以使用 UIA_TIMEOUT 环境变量控制 运行 循环等待仪器启动应用程序并返回报告的时间。默认值为 10 秒。 Calabash 告诉 运行-loop 尝试 3 次,总共 30 秒。不幸的是,运行-循环没有 public API 文档。

有两个环境变量可以控制 Calabash 尝试与嵌入式服务器建立连接的时间:

  • CONNECT_TIMEOUT
  • MAX_CONNECT_RETRY

默认为每 3 秒尝试重新连接一次,共 10 次,总共 30 秒。

每次进行查询或手势时也会使用这两个变量 - Calabash 等待服务器回复的时间。