【问题标题】:How do I wrap a gradle task in another task?如何将 gradle 任务包装在另一个任务中?
【发布时间】:2014-06-30 08:14:51
【问题描述】:

我正在尝试配置两个不同的 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 处理这种情况的正确方法是什么?

【问题讨论】:

    标签: gradle


    【解决方案1】:

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

    【讨论】:

    • 太棒了,type: Test 是我错过的部分。谢谢!
    猜你喜欢
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2021-12-28
    相关资源
    最近更新 更多