我的UI测试失败,因为测试一直无休止地等待,直到应用程序空闲为止。我看不到在后台发生任何事情,例如加载微调框。

它仅出现在一个选项卡上。其他所有选项卡都是可单击的,但测试在屏幕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];

}

最佳答案

也许您有一些动画或其他一些背景(或前景) Activity 会经常在主线程上更新您的UI。这将使应用程序永远不会“停顿”-至少在此选项卡上是这样。在我们的应用程序中,我们有带有选项Repeat的UIView动画。 CPU使用率很好,并且不会浪费电池,但是每次都使测试失败。禁用动画可解决此问题。我无法找到一种方法来强制测试不要等待空闲,因此我们最终使用#ifdef禁用动画,并使用运行时参数对UI测试目标进行了动画测试,如下所述:https://stackoverflow.com/a/33466038/168996

关于ios - XCTestCase:WAITING应用程序空闲,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33624650/

10-12 13:36