如何在connectDebugAndroidTest运行之前和之后运行脚本

时间:2019-04-03 20:13:34

标签: android ruby docker gradle android-testing

我想在Instrumentation测试开始之前从任务(在build.gradle中)运行bash脚本。该脚本应运行包含ruby base模拟服务器的docker容器。

我不知道为什么我不能得到它,但这就是我现在所拥有的(放在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 :(得分:0)

好的,我终于明白了 hoooray :)

我在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
}

也许这会帮助有类似我的错误的人:)

祝你好运,敬请期待!