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 の両方で問題なく動作したので、プロファイルとデバイス自体の問題ではないと思います。

この問題の原因は何ですか?

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 に基づいて開きますが、ひょうたんはデバイス エンドポイントを介してアプリとやり取りしようとします。

ひょうたんコンソールでアプリを実行してみてください。テストと同じように動作する場合は、デバイス エンドポイントに問題があります。確認すべきことのいくつかのアイデアは、電話とテストが実行されているマシンで同じネットワーク上にいること、vpn が何らかの形で通信に干渉しているかどうか、またはテスト マシンで計測器が開いているかどうかです。

アプリが開いているときは、実行できるはずです

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

ひょうたんのバージョン番号で応答を取得します。それを取得できない場合、ひょうたんはテストで何もできません。

于 2015-05-04T21:53:50.380 に答える