android - 如何在connectedDebugAndroidTest运行之前和之后运行脚本

标签 android ruby docker gradle android-testing

我想在 Instrumentation 测试开始之前从任务(在 build.gradle 中)运行 bash 脚本。该脚本应该运行一个包含 ruby​​ 基础模拟服务器的 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)时...

我很困惑,感谢任何帮助:)也许有人可以给我一个如何解决这个问题的提示。

最佳答案

好吧,我终于明白了万岁:)

我将以下部分添加到我的 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
}

也许这会帮助那些像我一样有错误的人:)

祝你好运,敬请期待!

关于android - 如何在connectedDebugAndroidTest运行之前和之后运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55503564/

相关文章:

android - 在 Flutter Form Widget 中动态添加字段

android - 如何用两种布局绑定(bind)对象?

android - 等高线图 OpenCV4Android 库

ruby - 带 capybara -webkit 的录像机

Ruby 字母数字检查

javascript - 如何在不重建 React 应用程序镜像的情况下更新环境变量

java - 通过 Activity 开关传递信息

Ruby 脚本问题

node.js - 在容器中运行挂载测试后, Istanbul 尔覆盖率未知

linux - Dockerfile在一个阶段从源代码构建,然后在第二阶段复制并安装