Unverified Commit 5217f89d authored by hellohuanlin's avatar hellohuanlin Committed by GitHub

[platform_view]delete previously installed app if needed (#110201)

parent 605661c9
......@@ -26,29 +26,34 @@ static const CGFloat kStandardTimeOut = 60.0;
[super setUp];
self.continueAfterFailure = NO;
// Retry launching the app if it fails to launch.
// This is trying to fix a "failed to terminate" failure, which is likely a bug in Xcode.
// The solution is based on https://stackoverflow.com/questions/41872848/xctests-failing-to-launch-app-in-simulator-intermittently
int remainingLaunchCount = 10;
while (true) {
self.app = [[XCUIApplication alloc] init];
[self.app launch];
remainingLaunchCount -= 1;
// Delete the previously installed app if needed before running.
// This is to address "Failed to terminate" failure.
// The solution is based on https://stackoverflow.com/questions/50016018/uitest-failed-to-terminate-com-test-abc3708-after-60-0s-state-is-still-runnin
XCUIApplication *springboard = [[XCUIApplication alloc] initWithBundleIdentifier:@"com.apple.springboard"];
[springboard activate];
XCUIElement *appIcon = springboard.icons[@"ios_platform_view_tests"];
if ([appIcon waitForExistenceWithTimeout:kStandardTimeOut]) {
NSLog(@"Deleting previously installed app.");
// Make icons wiggle
[appIcon pressForDuration:3];
// Tap the "x" button
[appIcon.buttons[@"DeleteButton"] tap];
// Tap the delete confirmation
[springboard.alerts.buttons[@"Delete App"] tap];
// Tap the second delete confirmation
[springboard.alerts.buttons[@"Delete"] tap];
// Press home button to stop wiggling
[XCUIDevice.sharedDevice pressButton:XCUIDeviceButtonHome];
[NSThread sleepForTimeInterval:3];
if (self.app.exists) {
// success launch
break;
}
if (remainingLaunchCount > 0) {
NSLog(@"Retry launch with remaining launch count %d", remainingLaunchCount);
[self.app terminate];
[NSThread sleepForTimeInterval:3];
continue;
}
NSLog(@"Failed to launch");
} else {
NSLog(@"No previously installed app found.");
}
self.app = [[XCUIApplication alloc] init];
[self.app launch];
}
- (void)tearDown {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment