1

嗨,我想为我的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 没有这样的方法??

4

2 回答 2

2

这种测试适用于测试插件,但不适用于测试任务。应用插件只配置任务,它不执行它们。为了执行任务,您必须从您的测试中启动一个“真正的”构建。推荐的方法是通过 Gradle 工具 API。

于 2013-06-29T08:54:58.327 回答
0

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

于 2019-12-03T15:17:37.140 回答