【问题标题】: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.finalizedBytask.dependsOn 添加此任务。

      另见我的answer,它解释了如何处理共享偏好...

      因为当这些首选项从备份中恢复时;这不是全新安装。

      【讨论】:

        猜你喜欢
        • 2012-05-26
        • 2012-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多