我正在尝试在使用Java测试任务运行JUnit测试的gradle构建中添加一些设置和删除代码。我有一个额外的资源,必须在测试之前设置,然后在测试结束时被撕毁。
当我使用test.doLast
特性时,资源将被正确地删除,除非有测试失败,在这种情况下,doLast
被跳过。
我尝试创建一个终结器任务,但是它每次运行,不管是在doFirst
中设置资源,还是跳过资源,因为所有目标都是最新的。当doFirst
未运行时,我需要跳过终结器任务。
我一直试图做的是为我首先设置的测试任务添加一个额外的属性,如果还没有设置它,就退出终结器。我的问题是,当我到达终结器任务时,测试属性不再被设置。
将这样的变量从doFirst任务传递给终结器的正确方法是什么?下面是我正在使用的代码的最小版本。
test.ext {
resourceStarted = false
}
task tearDownResource {
if (!test.resourceStarted) return
// tear down resource here
}
test.finalizedBy tearDownResource
test.doFirst {
resourceStarted = true
// start up resource
}
当终结器运行时,test.resourceStarted
属性始终为false
发布于 2015-01-26 08:39:24
常见错误:在配置期间运行tearDownResource中的代码。试一试
task tearDownResource << {
或将其放入doFirst
/doLast
中
https://stackoverflow.com/questions/28153762
复制