Manoj Manoj - 11 days ago 10
iOS Question

Unable to monitor event loop AND Wait for app to idle

I am writing UITest cases for my app using XCTest. App makes several server calls in the homescreen. I could not navigate to next screen. Automation often stays idle for 1 min or even more than that with the message


Wait for app to idle


or


Unable to monitor event loop


Is the there a way to make the app to execute my testCases breaking this ???

Answer

I have set arguments in UI test class

let app = XCUIApplication()
app.launchArguments = ["NoAnimations"]
app.launch()

In my Appdelegate's didFinishLaunchingWithOptions method I made a check

 NSArray *args = [NSProcessInfo processInfo].arguments;

    for (NSString *arg in args){
        if ([arg isEqualToString:@"NoAnimations"]){
            [UIView setAnimationsEnabled:false];
        }
    }

So now all over my app there wont be any animation and my app is no more blocked. This reduced my automation time from 25mins to 2mins.

Comments