如何获得JUnit中src/test/resources目录的路径?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

我知道我可以用以下方式从src/test/resources加载一个文件:

getClass().getResource("somefile").getFile()

但是,如何获得src/test/资源的完整路径?目录,也就是说,我不想加载文件,我只想知道目录的路径?

提问于
用户回答回答于

尝试使用类加载器对象:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("somefile").getFile());
System.out.println(file.getAbsolutePath());

用户回答回答于

你不需要混淆类加载器。实际上,这是一个不好的习惯,因为类加载器资源不在 java.io.File对象中时处于jar归档中。

Maven在运行测试之前会自动设置当前工作目录,因此可以使用:

    File resourcesDirectory = new File("src/test/resources");

resourcesDirectory.getAbsolutePath() 将返回正确的值,如果这是你真正需要的。

src/test/data如果希望测试通过文件系统访问数据,我建议创建一个目录。

扫码关注云+社区