【问题标题】:How to clear app data using Espresso test programatically?如何以编程方式使用 Espresso 测试清除应用数据?
【发布时间】:2020-08-18 23:47:41
【问题描述】:

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

  • 我们之前尝试过使用 Android Orchestrator
  • 不过,我们之前尝试过使用带有clearPackageData=true 标志的Android 测试编排器;这不适用于 Bitrise 和本地测试执行。例如,尽管我们使缓存等无效,但我们中的一些人无法使用此标志在本地运行测试

-我们的下一个替代方法是尝试使用 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.'

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

上课前 每次测试前 每次测试后 我们每次都会遇到相同的错误。这是我们正在使用的方法。

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

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

【问题讨论】:

    标签: android-espresso


    【解决方案1】:

    在调试版本中运行时,让开发团队在应用内启用数据库重置功能可能是最简单的方法。理想情况下,它是初始屏幕上的一个按钮,因此您不必做太多工作即可获得它,除非您的应用程序在测试之间返回到以前的状态(我面前没有一个正常运行的环境检查)在这种情况下,代码会变得混乱。

    您是正确的,您在问题中提到的方法不起作用;抛弃他们。

    【讨论】:

      猜你喜欢
      • 2011-06-18
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      相关资源
      最近更新 更多