2015-11-10 68 views
12

我的UI測試失敗,因爲測試在應用程序閒置之前一直等待。我無法看到背景中有什麼事情發生,如加載微調器。XCTestCase:等待應用程序空閒

它只發生在一個選項卡上。所有其他選項卡都可用,但屏幕3上的測試失敗。我在屏幕3上捕獲測試後單擊其他選項卡,測試會繼續併成功完成。

任何想法?

- (void)testExample 
{ 

    XCUIElementQuery* tabBarsQuery = self.app.tabBars; 

    [tabBarsQuery.buttons[@"Screen2"] tap]; 
    [tabBarsQuery.buttons[@"Screen3"] tap]; 
    [tabBarsQuery.buttons[@"Screen1"] tap]; 
    [tabBarsQuery.buttons[@"Screen4"] tap]; 

} 

回答

7

也許你有一些動畫或經常更新你在主線程中UI的一些其他背景(或前景)的活動。這會導致應用永遠不會「靜止」 - 至少在此選項卡上。在我們的應用程序中,我們有UIView動畫和選項Repeat。 CPU使用情況良好,並不是電池耗盡,但每次都會使測試失敗。禁用動畫解決了問題。我無法找到迫使測試不要等待空閒的方法,因此我們最終使用#ifdef爲UI測試目標禁用了動畫 ,使用運行時參數,如下所述: https://stackoverflow.com/a/33466038/168996

+0

奇怪。必須有一種方法來強制測試過程忽略動畫......動畫在應用程序中是正常的不是它們嗎?動畫不應該對測試流程有任何意義。僅僅因爲某些東西在移動並不意味着在用戶界面中無法使用其他按鈕。 – Jonny

+0

也許這只是一些早期版本中的XCTest的錯誤。我不是100%確定,但我認爲現在工作正常,即有重複的動畫,但它不會通過測試。 –

相關問題