2

私はひょうたんを大規模なプロジェクトに統合する過程にあります。私は Calabash をテスト アプリで動作させているので、インストールと環境が正しくセットアップされていることがわかります。ボタンをタップしてフィールドにテキストを入力するために、アクセシビリティ ラベルと .feature ファイルを使用しています。それはうまくいきます。

ただし、私の「実際の」プロジェクトは、はるかに大きく、より複雑です。構成はテスト アプリと同じですが (以下の統計を参照)、単純な .feature ファイルを実際のアプリで実行すると、不安定な結果が得られます。約 80% の確率で、" .feature ファイルの "与えられた行" を実行し、最終的に次のメッセージでタイムアウトします。

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

これらの場合、マウスを使用してアプリを操作しようとすると、アプリがまったく応答しないことに気付きました。凍ってしまったようです。表示されるはずの UIAlertView もありますが、表示されません。XCode (同じ「-cal」ターゲット) からシミュレーターを起動すると、フリーズしないことに注意してください。私はそれと対話することができ、UIAlert が表示され、すべて正常に動作します。

残りの 20% の時間は、.feature ファイルのそれよりも少し先に進みます。画面との対話を伴わない限り、"Given" 行と、場合によっては他の行を効果的に渡します。コマンドをタップまたは入力すると、ハングアップし、最終的には上記と同じ「実行期限切れ」メッセージでタイムアウトします。

多くの調査を行った結果、このアプリとテスト アプリの環境/構成の違いを排除し、Calabash が本当に気に入らないことがアプリにあるに違いないと判断しました。残念ながら、私はひょうたんに慣れていないため、どこから調べればよいかわかりません。どんな助けでも大歓迎です。

Calabash チームから要求された診断:

> xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
> xcodebuild -version
Xcode 6.1
Build version 6A1052d
> calabash-ios version
0.11.3
> calabash.framework/Resources/version
0.11.3
irb(main):006:0> server_version
{
                    "app_version" => "0.10",
                        "outcome" => "SUCCESS",
                         "app_id" => "<redacted>",
           "simulator_device" => "iPhone",
                        "version" => "0.11.3",
                       "app_name" => "<redacted>",
    "iphone_app_emulated_on_ipad" => false,
                          "4inch" => true,
                            "git" => {
        "remote_origin" => "git@github.com:calabash/calabash-ios-server.git",
               "branch" => "master",
             "revision" => "40c6245"
    },
          "screen_dimensions" => {
         "scale" => 2,
         "width" => 640,
        "sample" => 1,
        "height" => 1136
    },
                    "iOS_version" => "8.1",
                         "system" => "x86_64",
                      "simulator" => ""
}
4

3 に答える 3

1

ひょうたんを .13 にアップデートしてみましたか? CFNetwork フレームワークを追加しましたか?

-force_load "$(SRCROOT)/calabash.framework/calabash" -lstdc++ を追加しましたか?

情報不足で申し訳ありませんが、これが私が思いつくことができるすべてですか?問題を解決した場合。閉めていただけますか?

于 2015-04-20T09:56:47.567 に答える
0

表示されるはずの UIAlertView もありますが、表示されません。XCode (同じ「-cal」ターゲット) からシミュレーターを起動すると、フリーズしないことに注意してください。私はそれと対話することができ、UIAlert が表示され、すべて正常に動作します。

残りの 20% の時間は、.feature ファイルのそれよりも少し先に進みます。画面との対話を伴わない限り、"Given" 行と、場合によっては他の行を効果的に渡します。コマンドをタップまたは入力すると、ハングアップし、最終的には上記と同じ「実行期限切れ」メッセージでタイムアウトします。

Calabash は、プライバシー アラートを自動的に無視しようとします。現時点では、この動作をオプトアウトする方法はありません ( run-loop に未解決の問題があります)。

何が起こっているかというと、機器がアプリを制御できるようになる前に UIAlertView が表示されているということです。 このトピックと解決策に関する詳細な議論は、Managing Privacy Alerts wiki ページにあります。

簡単に言うと、UIAlertView の表示を遅らせる必要があります。

于 2015-05-01T13:23:58.340 に答える
0

calabash-ios console を使用してシミュレーターを正常に起動できますか?

編集してみて、これを使用して既にビルド -cal ターゲットを実行してください

DEBUG=1 DEVICE_TARGET='iPhone 5s (7.1 Simulator)' SDK_VERSION=7.1 PLATFORM=iphone cucumber -v --format html --out iphone.html $BASE_PATH/your-app/features/TESTCASE.feature
于 2014-10-29T18:19:55.830 に答える