执行任务后进行Gradle Spock测试

时间:2013-06-28 15:14:28

标签: plugins gradle spock

您好我想为 Gradle 插件编写一个 Spock 测试,以测试是否在从插件执行任务后生成报告,所以

   private ProjectInternal project
   ...
   public void 'check tasks'(){
        given:
            project.gradle.startParameter.taskNames = ["myTaskName"]
        project.gradle.buildListenerBroadcaster.projectsLoaded(project.gradle)

        when:
            project.plugins.apply(MYPlugin.class)
            project.?????
        then:
        ...

但是“then:”部分必须检查文件的存在但是必须执行“myTaskName”,如何让Ggradle执行我的任务?没有这样的方法 afterExecution ??

2 个答案:

答案 0 :(得分:2)

此类测试适用于测试插件,但不适用于测试任务。仅应用插件配置任务,它不会执行它们。为了执行任务,您必须从测试中启动“真正的”构建。建议的方法是使用Gradle工具API。

答案 1 :(得分:0)

如果您是Gradle 5之前的版本,则可以使用project.your_task.execute()