我想遍历我的test/
目录,其中包含每个测试用例的子文件夹,然后希望在每个子文件夹中执行不同的任务。Gradle:迭代测试目录并在每个目录中执行多项任务
这不起作用:因为xslt
任务不能doLast
关闭(issue),因为从doFirst
/doLast
调用任务从来没有被正式支持(SO answer)里面执行
plugins {
id 'com.github.eerohele.saxon-gradle' version '0.3.0'
}
task lessCompile {
description 'compile less to css'
...
}
task runAllTests(dependsOn: lessCompile) {
description 'runs all tests'
doLast {
new File(testFolder).eachDir() { testcase->
println testcase
// transform test_dev.xml to test_dev_prep.xml
xslt {
input file(testcase + '/test_dev.xml')
stylesheet file('xslt/prepare.xsl')
output file(testcase + '/test_dev_prep.xml')
}
exec {
workingDir '.'
commandLine 'cmd', "/c sys-command $testcase -param ..."
}
javaexec {
classpath = buildscript.configurations.classpath
main = '.....'
args = ['-headless', '-f1', "$testcase/file1" ]
}
}
}
}
的runAllTests
任务失败。
但是,什么是官方方式然后遍历目录,执行测试并将参数传递给这些任务。
而不要与dependsOn
来,这不适合我的情况。我只在这里使用它在这个例子来说明lessCompile
是在违背我尝试从doLast
块内呼叫其他任务的静态任务。
摇篮任务只能在构建执行一次。因此,您可以为所有目录使用一个任务(和一个执行),或者为每个目录使用一个任务。 –