iOS设备上的Calabash测试启动应用程序,但在“场景”中冻结

时间:2015-05-04 11:11:24

标签: ios iphone cucumber calabash calabash-ios

我一直在尝试使用Calabash来测试一些简单的iOS应用。我能够在模拟器上运行应用程序,所有步骤都可以正常工作。现在我想在iOS设备上测试它,但我遇到了一些问题。我使用所有必要的信息运行此命令:

BUNDLE_ID=... DEVICE_TARGET=... DEVICE_ENDPOINT=http://MY_IP:37265 cucumber

一段时间后,应用程序在iPhone中打开,我在控制台上获得了常用信息:

Feature: Running a test
  As an iOS developer
  I want to have a sample feature file
  So I can begin testing quickly

  Scenario: Example steps              # features/my_first.feature:6

但它永远存在。我离开了一段时间,它什么也没做。

我也尝试过Appium进行测试,它在模拟器和iPhone上都运行良好,所以我猜这不是Profiles和设备本身的问题。

可能导致此问题的原因是什么?

My setup:
- Mac OS X 10.10.3
- Xcode Version 6.3 (6D570)
- iPhone 4 - iOS 7.1.2 (11D257)
- calabash-cucumber (0.14.0)
- cucumber (1.3.19)

更新

尝试curl http://192.168.200.168:37265/version(由@alannichols建议)我得到:

Failed to connect to 192.168.200.168 port 37265: Operation timed out

但是我接受了测试,从Xcode(在设备上)执行-cal目标并运行命令的第一步:

NO_LAUNCH=1 DEVICE_TARGET=... DEVICE_ENDPOINT=http://192.168.200.168:37265 cucumber

我仍然收到错误,但这次是timeout错误:

Operation timed out - connect(2) for "192.168.200.168" port 37265 (Errno::ETIMEDOUT)

这是否意味着我以某种方式到达iPhone我无法发送请求?

1 个答案:

答案 0 :(得分:2)

如果应用程序打开且没有任何反应,通常是设备端点设置不正确。应用程序基于捆绑包ID打开,但随后calabash尝试通过设备端点与应用程序进行交互。

尝试在calabash控制台中运行应用程序,如果它的行为与测试中的行为相同,那么设备端点就会出现问题。需要检查的一些想法是,您在手机和运行测试的机器上的同一网络,无论您的VPN是否以某种方式干扰通信或者仪器是否在测试机器上打开。

当应用程序打开时,您应该可以运行

curl http://your.ip.address:37265/version

并获得葫芦版本号的回复。如果你不能得到它,那么葫芦将无法在你的测试中做任何事情。