1

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

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

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?

4

1 回答 1

2

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

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

当应用程序打开时,您应该能够运行

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

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

于 2015-05-04T21:53:50.380 回答