Appium: onDestroy () никогда не вызывается после тестов - PullRequest
0 голосов
/ 24 мая 2018

Я новичок в тестировании автоматизации и использую Appium для автоматизации некоторых тестов E2E для нативного приложения Android .Мои тестовые файлы написаны на Java.

Я заметил, что после методов тестирования в классе тестирования приложение не корректно закрывается, т.е. вызывает onDestroy () или OnPause () .Я заметил это, потому что я храню некоторые данные в SharedPreferences (в onDestroy () и onPause ()), и файл остается нетронутым или не создается вообще.

Я пробовал различные комбинации установки для параметра Desired Capability noReset значения true / false и вызова driver.quit () или driver.closeApp в @AfterMethod.

Я запускаю тест на AVD (Pixel 2).onResume () и onCreate (), кажется, вызываются правильно.

Мое единственное решение на данный момент было бы записывать данные в файл в другой точке, но я чувствую, что это действительно взломано и служит только для выполнения теста.

Поэтому я был бы очень признателен за помощь!

СПАСИБО

Это должен быть соответствующий код:

@BeforeMethod
public void setup () throws MalformedURLException {
    DesiredCapabilities caps caps = new DesiredCapabilities();
    caps.setCapability("deviceName", "device");
    caps.setCapability("udid", "emulator-5554");
    caps.setCapability("platformName", "Android");
    caps.setCapability("platformVersion", "8.0");
    caps.setCapability("skipUnlock","true");
    caps.setCapability("noReset",false);
    caps.setCapability("fullReset",true);
    caps.setCapability("app", "/path/to/my/app-debug.apk");
    driver = new AndroidDriver<MobileElement>(new 
    URL("http://0.0.0.0:4723/wd/hub"),caps);
    wait = new WebDriverWait(driver, 10);
}

@Test 
public void someTest() {
}
@Test 
public void anotherTest() {
}

@AfterMethod
public void teardown(){

    driver.closeApp();
} 

РЕДАКТИРОВАТЬ:

Я предположил, что, возможно, сохранение SharedPreferences через commit()каким-то образом вмешивается в Appium и меняет его на асинхронный вызов apply().Однако это не оказалось решением и привело к тому же результату.

...