【问题标题】:How to ask gradlew to uninstall app, before execution of test?如何在执行测试之前要求 gradlew 卸载应用程序?
【发布时间】:2019-07-24 06:38:50
【问题描述】:
我使用this solution 将我的Android Studio 配置为uninstall 之前的应用程序,然后再执行Espresso 测试。
所以,在Run -> Edit Configurations -> Before launch 然后添加:app:uninstallAll 所以,当我从AS 运行我的测试用例时,我只选择配置,它运行良好。
我使用./gradlew connectedAndroidTest 从命令行执行 Espresso 测试。但是,我想知道,
在执行测试之前,我如何要求 gradle 的命令行卸载以前的版本?
【问题讨论】:
标签:
android
gradle
android-gradle-plugin
android-espresso
gradlew
【解决方案1】:
您可以使用 adb 卸载以前的版本示例:
卸载旧的 apk
adb -s $device uninstall ${packageName}.debug
卸载测试
adb -s $device uninstall "com.bookings.test"
设备 - 连接的设备
packageName - 应用的包名。
希望这会有所帮助:)
【解决方案2】:
你不能询问 Gradle 的命令行 - 但 Gradle 可以询问命令行提示符。
基于这个答案here,可以轻松创建所需的应用程序卸载Exec 任务:
task uninstallApp(type: Exec) {
def uninstallCommand = ['adb', 'shell', 'pm', 'uninstall', 'com.acme.coyote']
commandLine uninstallCommand
}
可以使用task.finalizedBy 或task.dependsOn 添加此任务。
另见我的answer,它解释了如何处理共享偏好...
因为当这些首选项从备份中恢复时;这不是全新安装。