如何将gradle任务包装在另一个任务中?

时间:2014-05-12 20:11:00

标签: gradle

我正在尝试配置两个不同的gradle测试任务,这些任务基本上只是设置了一些值,然后运行内置的测试任务。我已经阅读了gradle文档,并且一直在寻找几个小时而没有运气。我猜不知道如何正确地说出这个问题以找到任何东西。

场景是我们可能希望在本地或远程运行selenium测试。如果我们在本地运行它们,我们想要配置它使用的线程数,如果我们远程运行它们,我们想要设置更多的线程数和系统属性,以便测试运行器知道远程运行。

基本上就是我想做的事情:

task testLocal {
    maxParallelForks = 2
    // now run the built-in test task
}

task testRemote {
    maxParallelForks = 4
    systemProperties "geb.env": "winxp-firefox"
    // now run the built-in test task
}

理想情况下,我还希望能够在命令行上传递测试任务支持的所有相同参数,例如:

gradle testLocal --tests com.domain.tests.package*

使用gradle处理此方案的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

处理此问题的正确方法是执行两个Test任务。您通常使用(并配置)Java插件的test任务进行本地测试,并另外声明和配置第二个testRemote任务(task testRemote(type: Test) { ... })。 (无法“包装”任务,或从另一个任务“调用”任务。)