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

时间:2013-05-16 17:58:49

标签: android eclipse emulation robotium

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

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

有什么建议吗?

感谢。

BTW,我正在使用Robotium包。

4 个答案:

答案 0 :(得分:1)

快速解决方案:

adb -e uninstall your.test.package.name

清洁解决方案:

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

答案 1 :(得分:0)

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

  • 转到菜单,您会看到该应用
  • 点击菜单按钮,点击“管理应用”
  • 点击您的应用
  • 它会询问您是否确实要将其卸载
  • 点击“是”或“卸载”按钮。它将被卸载所有数据。

希望这有帮助。

答案 2 :(得分:0)

如果您的数据位于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,只需覆盖文件。

答案 3 :(得分:0)

如果应用数据存在问题,您可以清除它而不是执行卸载。这个link应该会有所帮助。