Как запускать скрипты до и после запуска connectDebugAndroidTest

Я хочу запустить скрипт 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)...

Я в замешательстве и ценю любую помощь :) Может быть, кто-нибудь подскажет, как это решить.

1
0
295
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ОК, наконец-то я понял ура :)

Я добавил следующие части в свой 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
}

Может быть, это поможет кому-то, у кого есть какая-то ошибка, как у меня :)

Удачи и следите за обновлениями!

Другие вопросы по теме