Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle插件测试方法_Gradle - Fatal编程技术网

Gradle插件测试方法

Gradle插件测试方法,gradle,Gradle,我正在编写一个gradle插件,它定义了一个UpdateWhen闭包,以在满足某些条件时跳过任务。我很难想出如何围绕这个方法进行测试。目前看来: class MyCoolTask extends DefaultTask { MyCoolTask() { outputs.upToDateWhen { if (somecondition) return true else return false } } } 我的测

我正在编写一个gradle插件,它定义了一个
UpdateWhen
闭包,以在满足某些条件时跳过任务。我很难想出如何围绕这个方法进行测试。目前看来:

class MyCoolTask extends DefaultTask {

  MyCoolTask() {
    outputs.upToDateWhen {
      if (somecondition)
        return true
      else
        return false
    }
  }
}
我的测试如下所示:

class MyCoolTaskTest {

  @Test
  void testUpToDateCheck() {
    project = ProjectBuilder.builder().build()
    project.apply plugin: 'myCoolPlugin'

    project.myCoolTask.execute()

    // But then how do you do a subsequent run and ensure that the task did not execute?

    project.myCoolTask.execute() // running this a second time does not work.

    project.myCoolTask.outputs.upToDateWhen() // Throws a syntax error
  }
}

任何可以提供的见解都将是伟大的!谢谢

ProjectBuilder
用于配置构建但不执行任何任务的低级测试。您可以将
outputs.upToDateWhen{…}
的内容分解成一个方法/类并进行测试,和/或编写一个验收测试,使用Gradle工具API执行实际构建。

ProjectBuilder
用于配置构建但不执行任何任务的低级测试。您可以将
outputs.upToDateWhen{…}
的内容分解成一个方法/类并进行测试,和/或编写一个验收测试,使用Gradle工具API执行实际构建