GradleRunner将构建目录放在哪里?

时间:2018-01-17 17:03:40

标签: gradle spock

我想要运行一个功能测试来查看Gradle插件任务的输出,这是一系列文件。我正在使用GradleRunner,测试看起来像TestKit docs中的那些,但是使用Spock运行。

@Rule public final TemporaryFolder testProjectDir = new TemporaryFolder();
private File buildFile;

def setup() {
    buildFile = testProjectDir.newFile("build.gradle");
    buildFile << """
        plugins {id 'com.myplugin.id'}
    """
}

def "my plugin task creates myfile.txt inside build dir"() {
    given:

    when:

    def result = GradleRunner.create()
        .withProjectDir(testProjectDir.root)
        .withPluginClassPath()
        .withArguments("mytask")
        .build();

    then:
    result.task(":mytask").getOutcome() == SUCCESS
    new File(testProjectDir.root.absolutePath + "/build", "myfile.txt").exists()

}

我只是在临时目录中看不到正在创建的build目录。构建工件放在哪里?

1 个答案:

答案 0 :(得分:1)

TemporaryFolder文件夹规则在系统TEMP目录中创建一个文件夹,并在构建完成后立即删除它。如果您想检查它,那么最简单的方法是调试测试并查看testProjectDir.root的内容。