在测试资源包下,我的文件与我的测试类在同一路径中。对资源文件进行更改后,当我尝试使用./gradlew test
运行测试用例时,读取该文件(使用调试器验证)后,更改不会反映出来。我已经尝试清理项目,但这无济于事。
对于我在这里缺少的资源,是否还有其他缓存发生?
这是我读取文件的方式:
File testFile = new File(this.getClass().getResource("namr_two").getFile());
答案 0 :(得分:0)
getClass()。getResource()从类路径而不是文件系统中加载资源。类加载器负责在运行时将Java类和资源动态加载到JVM(Java虚拟机)。
我建议使用ClassLoader.getSystemResource():
File testFile = new File(ClassLoader.getSystemResource("namr_two").getFile());
或:
Class class1 = null;
try {
class1 = Class.forName("class1");
ClassLoader cl = class1.getClassLoader();
File testFile = new File(cl.getResource("namr_two").getFile());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}