Appium no longer performing fullReset after test complete

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 :slight_smile: . 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 :slight_smile: . 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)
        ));