2017-02-08 64 views
0

有一種將異步塊作爲參數的方法。EarlGrey凍結動畫並且不會調用回調

第一次運行該應用程序時,調用此方法,並且存在覆蓋整個屏幕的動畫。該方法正在進行網絡通話,可能需要相當長的時間,大約7秒左右。塊運行時,回調結束動畫,並且應用程序已準備好再次與之交互。

當我在模擬器中運行應用程序並敲打時,所有內容都按照它應該運行。當我運行EarlGrey測試目標時,動畫會凍結,並且測試最終會失敗,因爲存在無法找到的元素。在動畫視圖(UIView的子類)後面,即使元素不可見,仍然可以成功執行一些步驟。

最後,這隻發生在應用程序的第一次運行中,因爲後續測試運行中的網絡調用要短得多。

我試着改變配置來禁用動畫,而且沒有任何東西似乎適用於我。我無法真正粘貼代碼,因爲該應用程序是專有的。

我很高興回答任何和所有澄清問題,並非常期待一些幫助!

+0

我也會建議嘗試在1對1的閒暇頻道上詢問,如果這是你不能在SO上發佈或不想讓世界看到的東西。 – khandpur

+0

聽起來不錯,我剛剛發出邀請請求! – ArielSD

回答

1

聲明:這是所有@khandpur。我加入了Google Open Source Slack頻道,他幫助我進行了艱苦的調試。

問題是使用Facebook's Shimmer。我此行的setUp方法:

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

這是加快動畫,但造成了一些衝突微光,也不太清楚爲什麼。我要在他們的回購中發表評論。

我刪除了那一行,雖然測試有點慢,但它們現在完全穩定。

0

您是否考慮過使用kGREYConfigKeyURLBlacklistRegex黑名單URL,即阻止EarlGrey等待請求? (假設網絡等待對於你的測試是不必要的)。見EarlGrey/Common/GREYConfiguration.h

+0

我希望你能迴應,@ Gautam!網絡等待是必要的,因爲返回的數據用於構建測試其餘部分與之交互的元素。你有沒有聽說過這樣的事情? – ArielSD

+0

我認爲EarlGrey會等待,除了動畫被凍結。 – ArielSD

+0

我很驚訝,因爲我看到網絡密集型應用程序在谷歌上使用EarlGrey而動畫沒有任何問題,所以動畫被凍結。進一步瞭解情況:任何想法如何實施動畫? [UIView動畫](https://developer.apple.com/reference/uikit/uiview/1622515-animatewithduration)? CoreAnimation有些低級別? – Gautam