在执行测试之前,如何要求gradlew卸载应用程序?

时间:2019-03-02 11:31:12

标签: android gradle android-gradle android-espresso gradlew

我使用this solution将我的 Android Studio 配置为uninstall之前的应用,然后再执行Espresso测试。

因此,在Run -> Edit Configurations -> Before launch中,然后添加了:app:uninstallAll,因此,当我从AS运行我的测试用例时,我只选择了配置,并且效果很好。

enter image description here

我使用./gradlew connectedAndroidTest从命令行执行Espresso测试。但是,我想知道

在执行测试之前,我如何要求gradle的命令行卸载以前的版本?

2 个答案:

答案 0 :(得分:0)

您可以使用adb卸载以前的版本示例:

取消旧版APK

adb -s $device uninstall ${packageName}.debug

卸载测试

adb -s $device uninstall "com.bookings.test"

设备-连接的设备 packageName-应用程序的软件包名称。

希望这会有所帮助:)

答案 1 :(得分:0)

您不能询问Gradle的命令行-但Gradle可以询问命令行提示符。

根据此答案here,可以轻松创建所需的应用程序卸载Exec任务:

task uninstallApp(type: Exec) {
    def uninstallCommand = ['adb', 'shell', 'pm', 'uninstall', 'com.acme.coyote']
    commandLine uninstallCommand
}

可以通过task.finalizedBytask.dependsOn添加此任务。

另请参阅我的answer,它说明了如何处理共享的偏好...

因为要从备份还原这些首选项;这不是全新安装。