Java Appium:onDestroy()在测试后从未调用

Java Appium:onDestroy()在测试后从未调用,java,selenium,automated-tests,appium,appium-android,Java,Selenium,Automated Tests,Appium,Appium Android,我是一个测试自动化的初学者,并使用Appium为原生Android应用程序自动化一些E2E测试。我的测试文件是用Java编写的 我注意到在测试类中的测试方法之后,应用程序没有正确关闭。E调用onDestroy()或onPause()。我注意到了这一点,因为我在SharedReferences中存储了一些数据(在onDestroy()和onPause()中),文件保持不变或根本没有被创建 我尝试了各种组合,将所需的功能noReset设置为true/false,并在@AfterMethod中调用dr

我是一个测试自动化的初学者,并使用Appium原生Android应用程序自动化一些E2E测试。我的测试文件是用Java编写的

我注意到在测试类中的测试方法之后,应用程序没有正确关闭。E调用onDestroy()onPause()。我注意到了这一点,因为我在SharedReferences中存储了一些数据(在onDestroy()和onPause()中),文件保持不变或根本没有被创建

我尝试了各种组合,将所需的功能noReset设置为true/false,并在@AfterMethod中调用driver.quit()或driver.closeApp

我在AVD(像素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();
} 
@before方法
public void安装程序()引发了畸形的DurException{
DesiredCaps=新的DesiredCapabilities();
caps.setCapability(“设备名称”、“设备”);
caps.setCapability(“udid”、“emulator-5554”);
caps.setCapability(“平台名”、“安卓”);
caps.setCapability(“平台版”、“8.0”);
caps.setCapability(“skipUnlock”、“true”);
caps.setCapability(“noReset”,假);
caps.setCapability(“完全重置”,真);
setCapability(“app”,“/path/to/my/app debug.apk”);
驱动程序=新的AndroidDriver(新的
网址(“http://0.0.0.0:4723/wd/hub"(大写),;
等待=新的WebDriverWait(驱动程序,10);
}
@试验
公共测试(){
}
@试验
公共无效另一项测试(){
}
@后置法
公共无效拆卸(){
driver.closeApp();
} 
编辑:


我假设Appium通过
commit()
存储SharedReferences可能会进行某种干预,并将其更改为异步调用
apply()
。但是,这并不是解决方案,并导致了相同的结果。

欢迎使用,请向我们展示您的解决方案的代码片段。@cSteusloff谢谢!很抱歉最初没有包括它,我在问题中添加了一个代码片段。