connectedInstrumentTest

connectedInstrumentTest

我正在运行一些Android工具测试,这些测试要求我正在测试的应用程序是全新安装-该应用程序不应在手机上存在。

我通常通过运行

./gradlew uninstallAll
./gradlew connectedInstrumentTest

但是,有时我忘了卸载并且测试失败。

我想强制uninstallAll在运行connectedInstrumentTest时自动运行。我怎样才能做到这一点?

在我的build.gradle中,我已经尝试过
connectedInstrumentTest.doFirst {
    uninstallAll.execute()
}

但这给了我

在项目':myapp'上找不到属性'connectedInstrumentTest'。

我试过了
connectedInstrumentTest.dependsOn(uninstallAll)

我犯了同样的错误。

这可能归结于我对Gradle的了解不足。我已经进行了搜索,但是唯一的例子似乎是围绕自定义任务,而不是Android项目已经随附的内置任务。

最佳答案

@Opal的评论使我读了一些书,最终我得到了这个作品

tasks.whenTaskAdded { task ->

    if(task.name.equals("connectedInstrumentTest")){
        task.dependsOn(uninstallAll)
    }
}

我相信问题是试图过早添加依赖项,但是将其放入tasks.whenTaskAdded似乎正常。现在,当我运行connectedInstrumentTest时,将首先卸载该应用程序。

10-02 08:01