在 Espresso 测试期间发送模拟器控制台命令

mon*_*key 3 android android-emulator android-espresso

谷歌解释了如何控制 Android 模拟器的许多参数,例如电池的当前电量、传感器输入等:https : //developer.android.com/studio/run/emulator-console.html

我想创建一个 Espresso 测试,在测试期间更改模拟器的这些参数,这可能吗?我知道有以下方法:

InstrumentationRegistry.getInstrumentation().uiAutomation
    .executeShellCommand("someShellCommand")
Run Code Online (Sandbox Code Playgroud)

可以在测试期间调用此方法,但要更改仿真器的系统参数,我首先必须通过登录telnet localhost 5554,然后才能操作仿真器参数,例如:power capacity 30,将电池电量更改为 30% . 我如何在 Espresso 测试期间做到这一点?

Die*_*ano 6

你可以试试

InstrumentationRegistry.getInstrumentation().getUiAutomation()
    .executeShellCommand("dumpsys battery set level 30");
Run Code Online (Sandbox Code Playgroud)

更改电池电量。其他值或设置可能需要不同的命令。

注意:完成阅读后,您有责任关闭返回的文件描述符。

  • 如果有人正在使用它,请确保对由 `executeShellCommand()` 返回的对象调用 `.close()`。否则后续测试将失败。 (5认同)