我正在运行一些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
时,将首先卸载该应用程序。