我一直在尝试使用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?

最佳答案

如果应用程序打开但没有任何反应,通常与设备端点设置不正确有关。该应用程序将根据分发包ID打开,但随后葫芦尝试通过设备端点与该应用程序进行交互。

尝试在calabash控制台中运行该应用程序,如果该应用程序的行为与测试中的行为相同,则该设备端点存在问题。需要检查的一些想法是,您位于电话上的同一网络上,并且正在运行测试的计算机上,您的VPN是否以某种方式干扰了通信,或者测试计算机上的仪器是否打开。

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

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

并获得带有葫芦版本号的响应。如果您无法做到这一点,那么葫芦将无法在您的测试中做任何事情。

关于ios - 在iOS设备上进行葫芦测试会启动应用,但在“方案”中卡住,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30028677/

10-14 20:44
查看更多