我创建了文件夹 src/test/resources/
在根项目目录中,我在jsons文件夹中添加了一个文件 jsons/server_request.json
.
现在我试图通过调用commontestutilityclass中的静态函数来读取此文件,该函数如下所示:
public class CommonTestUtility {
public static String getFileAsString(String fileName) throws IOException {
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());
String content = new String(Files.readAllBytes(file.toPath()));
return content;
}
}
现在调用这个函数
class ServerTest {
@Test
void test_loadResource() {
String content = CommonTestUtility.getFileAsString("jsons/server_request.json");
}
}
,它给我的错误是:
CommonTestUtility - Cannot invoke "java.net.URL.getFile()" because the return value of "java.lang.ClassLoader.getResource(String)" is null.
我试着把 src/test/resources/
在junit servertest.java的运行配置中,仍然找不到资源如何解决这个问题?
2条答案
按热度按时间5jvtdoz21#
我重新创建了与您描述的场景相同的场景,您的代码也适用于我。你能再检查一下你的项目下面和我的一样吗?如果是这样的话,我想可能是你的环境造成的。
qkf9rpyu2#
https://mkyong.com/java/java-read-a-file-from-resources-folder/
上面的链接可能会有所帮助。getresource()方法返回需要将.getfile()函数更改为的uri。touri()。简单代码
私有文件getfilefromresource(字符串文件名)引发urisyntaxexception{