私はひょうたんを大規模なプロジェクトに統合する過程にあります。私は 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" => ""
}