如何运行测试"运行任务"在单元测试中

时间:2015-03-22 03:58:53

标签: groovy gradle

例如,以下是gradle doc:

class GreetingTaskTest {
    @Test
    public void canAddTaskToProject() {
        Project project = ProjectBuilder.builder().build()
        def task = project.task('greeting', type: GreetingTask)
        assertTrue(task instanceof GreetingTask)
    }
}

我希望测试

class GreetingTaskTest {
    @Test
    public void canAddTaskToProject() {
        Project project = ProjectBuilder.builder().build()
        def task = project.task('greeting', type: GreetingTask) {
            methInGreetingTask()
        }
        task.run()
    }
}

我的问题是:怎么做?

2 个答案:

答案 0 :(得分:0)

您正在寻找execute中定义的AbstractTask方法 - gradle internales。请参阅docs

答案 1 :(得分:0)

gradle任务的事情在于执行的是它们的动作。您可以通过.actions获取它们,然后使用.execute(task)执行每个任务。

project.tasks.getByName("myTask").with { Task task ->
    assertEquals task.group, 'My Group'

    task.actions.each { Action action ->
        action.execute task
    }
}

使用gradle 6.4 / groovy 2.5.10测试