2017-02-08 3 views
0

非同期ブロックをパラメータとして持つメソッドがあります。EarlGreyはアニメーションをフリーズし、コールバックをコールしません

初めてこのアプリケーションを実行すると、このメソッドが呼び出され、画面全体をカバーするアニメーションがあります。この方法では、約7秒ほどでかなり長い時間がかかるネットワークコールが行われています。ブロックが実行されると、コールバックはアニメーションを終了し、アプリケーションは再び対話できる状態になります。

私はシミュレータでアプリを実行し、周りをタップすると、すべてが必要なように実行されます。 EarlGreyテストターゲットを実行すると、アニメーションがフリーズし、テストは最終的に失敗します。見つからない要素があるためです。アニメーションビュー(UIViewのサブクラス)の後ろに、要素が表示されていなくても、いくつかのステップがまだ正常に実行されています。

最後に、これはアプリケーションの最初の実行時にのみ発生します。これは、後続のテスト実行時のネットワークコールがはるかに短いためです。

私はアニメーションを無効にする設定を変更しようとしましたが、何も私のために働くようです。私は本当にアプリケーションが独占的なので、コードを貼り付けることはできません。

私は、すべての明確な質問に答えていただき、何か助けを待っています!

+0

私はまた、あなたがSOに投稿できない、または世界中に見せたくないものであれば、1対1の緩やかなチャンネルを聞いてみることをお勧めします。 – khandpur

+0

すごくいいね、私はちょうど招待状のリクエストを送った! – ArielSD

答えて

1

免責事項:これはすべて@khandpurです。私はGoogle Open Source Slackチャンネルに参加し、彼は私がハードにデバッグするのを手伝った。

問題は、Facebook's Shimmerの使用でした。私はsetUp方法でこのラインを持っていた:

[UIApplication sharedApplication].keyWindow.layer.speed = 100;

これは、アニメーションを高速化しましたが、なぜあまりにもわからない、きらめきといくつかの競合の原因。彼らのレポにコメントするつもりです。

私はその行を削除しましたが、テストは少し遅くなりましたが、現在は完全に安定しています。

0

kGREYConfigKeyURLBlacklistRegexを使用してURLをブラックリストに登録したと思われましたか?つまり、EarlGreyがリクエストを待つのを防ぐのですか? (ネットワークテストがurテストのために不必要であると仮定して)。 EarlGrey/Common/GREYConfiguration.h

+0

私はあなたが@Gautamに返答したいと考えていました!戻ってくるデータは、残りのテストがやりとりする要素を構築するために使用されるため、ネットワーク待機が必要です。前にこのようなことは聞いたことがありますか? – ArielSD

+0

私はEarlGreyがアニメーションがフリーズすることを除いて待つと思う。 – ArielSD

+0

私は、アニメーションが問題なく、GoogleがEarlGreyを使用するネットワーク集中型アプリケーションを見たので、アニメーションがフリーズするのに驚いています。状況をさらに理解するには、アニメーションがどのように実装されているかを考えてください。 [UIView animation](https://developer.apple.com/reference/uikit/uiview/1622515-animatewithduration)?いくつかの下位レベルのCoreAnimation? – Gautam

関連する問題