Java 如果gradle项目中的测试任务失败,请运行stop tomcat任务

Java 如果gradle项目中的测试任务失败,请运行stop tomcat任务,java,gradle,Java,Gradle,我正在做一个gradle项目。我为它写了一些测试。 在build.gradle中,我为它编写了三个任务:tomcatStart、tomcatEnd和test。 在测试任务内部,我在doFirst中执行tomcatStart,在doLast中执行tomcatStop。 如果没有测试失败,一切正常。 但是如果测试失败,tomcat将继续运行 我想知道是否有任何方法,即使测试任务失败,我也可以停止tomcat。尝试使用测试任务的finalizeeby属性。官方对此有很好的描述。据它说: 如果生成创建了

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


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

尝试使用测试任务的
finalizeeby
属性。官方对此有很好的描述。据它说:

如果生成创建了一个无论生成失败或成功都必须清理的资源,那么终结器任务在这种情况下非常有用。此类资源的一个示例是在集成测试任务之前启动的web容器,即使某些测试失败,也应始终关闭该容器

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

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

taskX.finalizedBy taskY

尝试使用测试任务的
finalizeebby
属性。官方对此有很好的描述。据它说:

如果生成创建了一个无论生成失败或成功都必须清理的资源,那么终结器任务在这种情况下非常有用。此类资源的一个示例是在集成测试任务之前启动的web容器,即使某些测试失败,也应始终关闭该容器

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

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

taskX.finalizedBy taskY

谢谢@Stanislav谢谢@Stanislav