Я хочу запустить скрипт bash из задачи (в build.gradle) до начала тестов Instrumentation. Этот сценарий должен запускать контейнер докеров, содержащий фиктивный сервер ruby bases.
Я не знаю, почему я не могу его получить, но это все, что у меня есть на данный момент (помещено в мой build.gradle):
task startMock(type:Exec) {
println("Executing myScript")
def proc = "cd ../..".execute()
proc.waitForProcessOutput(System.out, System.err)
proc = "../scripts/_mock.sh -a start -p ${projectDir}/../../ -m deps/mock-config".execute()
proc.waitForProcessOutput(System.out, System.err)
}
gradle.projectsEvaluated {
connectedDebugAndroidTest.dependsOn startMock
}
Проблема в том, что Задание запускается всегда, а не только при вызове connectedDebugAndroidTest (или connectCheck)...
Я в замешательстве и ценю любую помощь :) Может быть, кто-нибудь подскажет, как это решить.
ОК, наконец-то я понял ура :)
Я добавил следующие части в свой build.gradle(app), и теперь скрипт вызывается до и после запуска connectCheck:
task('mockStart', type: Exec){
doFirst {
println "MOCK: Start server ..."
}
executable "../../scripts/_mock.sh"
args '-a', 'start', '-p', "${projectDir}/../../", '-m', 'deps/mock-config'
}
task('mockStop', type: Exec){
doFirst {
println "MOCK: Stop Server ..."
}
executable "../../scripts/_mock.sh"
args '-a', 'stop', '-p', "${projectDir}/../../", '-m', 'deps/mock-config'
}
gradle.projectsEvaluated {
connectedDebugAndroidTest.dependsOn mockStart
connectedDebugAndroidTest.finalizedBy mockStop
}
Может быть, это поможет кому-то, у кого есть какая-то ошибка, как у меня :)
Удачи и следите за обновлениями!