Существует более простой способ: использовать две основные задачи для запуска интеграционного теста:
- первая (ваша текущая задача
integrationTest
) для выполнения тестов автономным способом (без развертывания / выключения), - вторая (ваша текущая задача
runIntegrationTests
), чтобы обернуть первую задачу и обработать узлы развертывания / завершения работы.
1) Удалить зависимость dependsOn
междуintegrationTest
задача и startWebappNodes
=> вы можете выполнить эту задачу integrationTest
"автономно" ( против того, что в данный момент выполняется )
./gradlew integrationTest
// execution of dependent task
> Task :integrationTest
// .. test executing...
2) Обновите задачу runIntegrationTests
, чтобы она зависела от задач integrationTest
и startWebappNodes
, а также добавьте ограничение для выполнения startWebappNodes
до integrationTest
, используя 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