0

在注意到崩溃后,我正试图找到一种将 Calabash 切换到下一个场景的方法

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

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

4

1 回答 1

0

Calabash 与模拟器重新建立连接前半小时

这是非常不寻常的,通常表明 UIAutomation 存在问题。

你看过热门话题页面吗?尤其:

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

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

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

报告问题

将来,请包括在Calabash iOS Wiki 主页的报告问题部分中找到的详细信息。

环境变量

您可以在此处找到有关所有 Calabash iOS 环境变量的文档。

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

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

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

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

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

  • CONNECT_TIMEOUT
  • MAX_CONNECT_RETRY

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

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

于 2015-05-01T12:59:59.183 回答