gpt4 book ai didi

java - 如何使用 gradle 为 Junit 测试授予写入权限

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:43 25 4
gpt4 key购买 nike

我有一个在 Java gradle 中配置的测试套件。 Junit 测试涉及 io 文件写入/读取当我使用 window machine 和 gradlew.bat test 时,所有测试都通过了。但是,如果我尝试在 linux 机器上运行相同的测试套件,所有涉及写入文件 io 的测试都会失败。我认为问题在于许可。有什么办法可以修复它吗?

我是如何创建文件的:

    File file = new File(String.format("./%s/e2eTest/Delete/Hello.txt", root));

file.createNewFile();

FileWriter writer = new FileWriter(file);
writer.write("Test data\n");
writer.close();

我如何访问文件:

Unirest.delete(String.format("http://localhost:%d/e2etest/delete/hello.txt",port)).asString().getStatus();

服务器端:

File f = new File(root+request.getUri())

最佳答案

为确保您具有写入权限,我建议您在 java.io.tmpdir 系统属性指定的文件夹下创建文件。

一个简单的方法是在 junit 测试中使用 TemporaryFolder规则将在测试完成后删除所有内容。

例如:

public class MyTest {
@Rule
public TemporaryFolder folder = new TemporaryFolder();

@Test
public void myFileTest() throws IOException {
File testFile = folder.newFile("myfile.txt");
doStuff(testFile);
}
}

另见 File.createTempFile(...)

关于java - 如何使用 gradle 为 Junit 测试授予写入权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46658758/

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