gpt4 book ai didi

image - 在 Gradle 中使用 Spock 测试创建的文件

转载 作者:行者123 更新时间:2023-11-28 20:23:34 25 4
gpt4 key购买 nike

我有生成图片的任务,所以我想为其编写测试,将此图片二进制文件与 以前生成的图片resource 文件夹中进行比较。

def setupSpec() {
project = ProjectBuilder.builder().build()
generatePicTask = project.tasks.create(SomePlugin.GENERATE_PIC_TASK_NAME, GeneratePicTask)
}

def 'create Picture test'() {
when:
File fileName = new File("Info")
then:
generatePicTask.createPicture(fileName)
expect:
fileName.exists()==true
}

但是这里有错误

C:\Users\User\AppData\Local\Temp\gradle1393280218367058727projectDir\build\Info.PNG 
(The system cannot find the path specified)

图片是在任务 generatePicTask 的 Action 闭包中生成的。

项目对象是虚拟项目,所以我什至不知道它是否已执行。我该如何解决这个问题?

最佳答案

我发现您当前的方法存在 3 个问题:

您的测试不应依赖于当前工作目录。因此,与其创建这样的文件:

File fileName = new File("Info")

例如使用 junit TemporaryFolder 规则。看一下使用例如http://garygregory.wordpress.com/2010/01/20/junit-tip-use-rules-to-manage-temporary-files-and-folders/了解更多详情

GeneratePicTask 任务似乎没有生成“构建”目录

确保输出目录(创建图像的父文件夹存在)。您可以使用 gradle 注释,例如@OuputDirectory 让 gradle 处理它。否则在生成图像之前执行类似“fileName.parentfile.mkdirs”的操作

一般来说,方法是拆分任务配置和任务执行:

generatePicTask.setPicture(fileName)
generatePicTask.create() // your @TaskAction annotated method

干杯,雷内

关于image - 在 Gradle 中使用 Spock 测试创建的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25078044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com