2012-12-11 67 views
7

是否可以从另一个任务定义继承一个任务定义?我想要做的是创造一些测试配置文件,所以我不得不默认测试 -Gradle任务定义继承

test { 

    include 'com/something/something/**' 
    exclude 'com/something/else/**' 

    maxParallelForks 5 

    testLogging{ 
     exceptionFormat "full" 
     showStackTraces = false 
    } 

    jvmArgs '-Xms128m', '-Xmx512m', '-XX:MaxPermSize=128m' 
} 

,并与被覆盖的“有”或“maxParallelForks”部分有些另一个测试等

是否有可能不创建新的任务类?

回答

10

你可以一次性配置所有这些任务,只要是使用下面的结构类型相同的:

tasks.withType(Test) { 
    include 'com/something/something/** 
    ... 
} 

这种配置类型“测试”的所有任务一气呵成。之后,您可以覆盖配置。

或者如果您不想设置所有任务,或者其中一些具有不同的类型,您可以像下面的代码片段一样列举它们。

["test","anotherTestTask"].each { name -> 
    task "$name" { 
    include ... 
    } 
} 

记住,你的Groovy的完整的脚本力量,所以有很多的选择在这里...

+1

谢谢,我想我会用你的第一个构建“tasks.withType(测试去)*。配置...” 。我仍然很好奇,但是如果有一种构建继承树的方式 - 有一些全局测试定义,那么一些testSuite1扩展全局测试,然后是一些testSuite2扩展testSuite2,...我知道有一些“黑客”可以实现这一点,但我仍然希望看到一些很好的DSL支持。 – mawek

+1

语法可以简化为'tasks.withType(Test){...}'和'task“$ t”{...}'。我们相信显式的*配置规则*比拥有所有隐藏语义的继承机制更好。因此我们没有计划添加一个。 –

+0

感谢您的简化Peter :) –