gpt4 book ai didi

gradle - Gradle任务依赖性: “run integration tests”与 “deploy, run integration tests, kill deployment”

转载 作者:行者123 更新时间:2023-12-03 04:58:01 25 4
gpt4 key购买 nike

我有一个比较复杂的部署任务以及一个集成测试任务。目前,我的集成测试任务取决于部署任务。但是,我想为集成测试任务提供某种包装任务,这样我就可以构建一个任务,以针对当前正在运行的部署任务,运行集成测试以及然后再次取消部署。

这是当前状态:

task integrationTest(type: Test, dependsOn: "startWebappNodes") {
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
outputs.upToDateWhen { false }
}

task runIntegrationTests(type: Exec, dependsOn: "integrationTest") {
commandLine 'docker-compose', 'down'
doLast {
println "Integration tests running finished"
}
}

我如何编写一个名为 executeIntegrationTest的任务,它不依赖 startWebAppNodes来执行集成测试,然后又有一个运行 startWebAppNodesexecuteIntegrationTest,然后再次关闭节点的测试?

最佳答案

有一种更简单的方法:使用两个主要任务来运行IntegrationTest:

  • 第一个以独立方式(无部署/关闭)执行测试的命令(您当前的integrationTest任务),
  • 第二个(您当前的runIntegrationTests任务)包装第一个任务,并处理部署/关闭节点。

  • 1)删除 dependsOn任务和 integrationTest之间的 startWebappNodes依赖关系

    =>您可以以“独立”方式执行 integrationTest任务(针对当前正在运行的任务)
    ./gradlew integrationTest
    // execution of dependent task

    > Task :integrationTest
    // .. test executing...

    2)更新您的 runIntegrationTests任务,使其同时依赖 integrationTeststartWebappNodes任务,并添加一个约束,以使 startWebappNodesintegrationTest之前执行,使用 mustRunAfter
    task runIntegrationTests(type: Exec) {
    group "test"
    dependsOn startWebappNodes
    dependsOn integrationTest
    commandLine 'docker-compose', 'down'
    doLast {
    println "Integration tests running finished"
    }
    }

    integrationTest.mustRunAfter startWebappNodes

    =>执行任务 runIntegrationTests时,它将启动节点,执行集成测试,然后关闭节点
    ./gradlew runIntegrationTests
    // execution of dependent task

    > Task :startWebappNodes

    > Task :integrationTest
    // .. test executing...

    > Task :runIntegrationTests
    Integration tests running finished

    关于gradle - Gradle任务依赖性: “run integration tests”与 “deploy, run integration tests, kill deployment”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54022862/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com