如何以编程方式使用 Espresso 测试清除应用程序数据?

How to clear app data using Espresso test programatically?

我们目前正在为应用程序的某个区域编写 Espresso UI 测试,这需要我们在每次测试后清除应用程序数据

-我们的下一个替代方法是尝试使用 ADB 命令来清除包数据,但是当我们使用它时,我们会遇到进程崩溃错误:

Test failed to run to completion. Reason: 'Instrumentation run failed due to 'Process crashed.''. Check device logcat for details
Test running failed: Instrumentation run failed due to 'Process crashed.'

我们已尝试在以下级别执行以下操作:

在 class 运行 之前 每次考试前 每次测试后 我们每次都会遇到相同的错误。这是我们正在使用的方法。

  public static void clearAppData(){
        try {
            InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand("pm clear <packageName>");
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }

选项: 我们可以在应用程序本身中将数据库重置为 dB 吗?

当 运行 在调试版本中时,让开发团队在应用程序中启用数据库重置功能可能是最简单的。理想情况下,它是初始屏幕上的一个按钮,因此您无需做太多工作即可访问它,除非您的应用程序 returns 恢复到测试之间的先前状态(我在在我面前检查)在这种情况下,代码会变得混乱。

你是对的,你在问题中提到的方法是行不通的;抛弃他们。