繁体   English   中英

运行Android单元测试后,如何从模拟器中自动卸载应用程序

[英]How can I automatically uninstall the app from the emulator after running the Android unit test

我正在使用Eclipse ADT测试Android应用程序。 但是,一次执行测试套件后,模拟器将安装该应用程序。 我需要将其从模拟器中删除,因为如果该应用程序已经安装在模拟器上(由于存储了一些数据),则下次测试将失败。

每次运行测试套件时,我都试图寻找一种方法来启动一个干净的模拟器,但是到目前为止还没有运气。

有什么建议么?

谢谢。

顺便说一句,我正在使用Robotium软件包。

快速解决方案:

adb -e uninstall your.test.package.name

清洁解决方案:

在启动模拟器进行新的测试运行之前,请备份一个已知的良好的userdata-qemu.img仿真器磁盘映像,并将其还原。

不,没有办法。 但是有一种简单的方法可以卸载它:

  • 转到菜单,您可以在其中查看应用程序
  • 点击菜单按钮,点击“管理应用”
  • 点击您的应用
  • 它将询问您是否真的要卸载它
  • 单击“是”或“卸载”按钮。 它将与所有数据一起卸载。

希望这可以帮助。

如果您的数据在SQLite数据库中,则可以将数据库版本更改为比实际版本更高的版本。

private static final int DATABASE_VERSION = 2; //in the class that extends SQLiteOpenHelper

这将调用onUpgrade函数,您可以在其中删除表并再次创建它们。

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    //erase table
    db.execSQL("DROP TABLE IF EXISTS " + MY_TABLE); 
    //create again
    onCreate(db);
}

如果您不使用SQLite,则只需覆盖文件即可。

如果应用程序数据有问题,您可以清除它而不是执行卸载。 链接应该有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM