如何在每次 UI 测试后使用 'pm clear' 清理应用程序数据
How to clean application data with 'pm clear' after each UI test
我开始使用 Espresso Framework 和 UI Automator 在 android 中编写 UI 测试。
所以我写了 3 个不同的 UI 测试,它们都包含身份验证过程。当我 运行 每个单独测试时,它们工作得很好。
但是,当我 运行 所有 3 个测试都使用 ./gradlew connectedAndroidTest
时,第一个测试通过而其他 2 个测试失败,因为它自动登录(我使用 webview 登录,所以它会将我重定向到主屏幕)。我试过 但没用。
我要存档的是,在每次测试后,使用清除数据
InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand("pm clean com.example.app")
并为每个测试重新开始。
当我在@After 中执行这个时,测试崩溃了:
Test failed to run to completion. Reason: 'Instrumentation run failed due to 'Process crashed.''.
知道如何存档吗?
我建议您使用 Android Test Orchestrator,因为它将 运行 每个测试都放在一个单独的进程中,这意味着不会与其他测试共享任何状态或数据。
我开始使用 Espresso Framework 和 UI Automator 在 android 中编写 UI 测试。
所以我写了 3 个不同的 UI 测试,它们都包含身份验证过程。当我 运行 每个单独测试时,它们工作得很好。
但是,当我 运行 所有 3 个测试都使用 ./gradlew connectedAndroidTest
时,第一个测试通过而其他 2 个测试失败,因为它自动登录(我使用 webview 登录,所以它会将我重定向到主屏幕)。我试过
我要存档的是,在每次测试后,使用清除数据
InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand("pm clean com.example.app")
并为每个测试重新开始。
当我在@After 中执行这个时,测试崩溃了:
Test failed to run to completion. Reason: 'Instrumentation run failed due to 'Process crashed.''.
知道如何存档吗?
我建议您使用 Android Test Orchestrator,因为它将 运行 每个测试都放在一个单独的进程中,这意味着不会与其他测试共享任何状态或数据。