如果测试任务在gradle项目中失败,则运行停止tomcat任务

时间:2017-07-06 09:42:50

标签: java gradle

我正在做一个gradle项目。我已经写了几个测试。 在build.gradle中,我为它编写了三个任务:tomcatStart,tomcatEnd和test。 在测试任务中,我在doFirst中执行tomcatStart,在doLast中执行tomcatStop。 如果没有测试失败,一切正常。 但是如果测试失败,tomcat会继续运行。

我想知道是否有任何方法,即使测试任务失败,我也可以停止tomcat。

1 个答案:

答案 0 :(得分:0)

尝试使用测试任务的finalizebBy属性。它在官方documentation中得到了很好的描述。根据它:

  

在构建创建必须清理的资源而不管构建是否失败或成功的情况下,终结器任务非常有用。此类资源的一个示例是在集成测试任务之前启动并且应始终关闭的Web容器,即使某些测试失败也是如此。

以下是文档中的一个示例:

task taskX {
    doLast {
        println 'taskX'
        throw new RuntimeException()
    }
}
task taskY {
    doLast {
        println 'taskY'
    }
}

taskX.finalizedBy taskY