Hello all,
I’m aware of the removal of resetApp() etc. from latest appium versions so don’t think I’m wading into that discussion . However, appium doesn’t appear to reset my Android app after a test completes, with the fullReset() option enabled? I don’t think this is covered in the removal of fullReset etc? What is the point in some of these capabilities then?
I’m using cucumber and running a feature file and the app doesn’t reset after a scenario, so the next test always fails. I’ve experimented with all appium versions from 8.6 to 9.1. I’ve also tried different configs of fullRest= true, noReset=false, etc. but I see no changes?
I could reset the app in an After hook, but it feels like appium should do this with the fullReset cap? Am I wrong in this?
edit, adding my UIAutomator2Options. I’ve commented out the areas that I was experimenting with . Becuase the fullReset I feel should suffice in resetting the app after a scenario is complete.
singleAndroidOptions
.ensureWebviewsHavePages()
.setPlatformVersion(device.getProductVersion())
.setDeviceName(device.getModelNumber())
.setUdid(device.getUniqueDeviceID())
.chromedriverUseSystemExecutable()
.autoGrantPermissions()
.fullReset()
// .setNoReset(false)
// .enforceAppInstall()
// .clearSystemFiles()
// .setFullReset(false)
// .setNoReset(true)
.setApp(singleAndroidDeviceAppPath);
I find myself doing this in the After hook, which seems like overkill
String packageName = driver.getCapabilities().getCapability("appPackage").toString();
driver.executeScript("mobile: clearApp", Map.ofEntries(
Map.entry("appId", packageName)
));
driver.executeScript("mobile: activateApp", Map.ofEntries(
Map.entry("appId", packageName)
));