ResourceBundle无法在target / test-classes中找到资源

时间:2016-04-28 17:17:35

标签: java junit resourcebundle

我的问题是,当资源包在JUnit测试期间尝试获取资源时,我得到MissingResourceException,但是位于src / test / resources中的所有文件都被编译成目标/测试类,我甚至可以使用

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

我该怎么办?

2 个答案:

答案 0 :(得分:0)

' ClassLoader.getResource方法()'可能导致问题。尝试通过返回InputStream的ResourceAsStream获取它。例如: -

InputStream is = this.getClass()。getClassLoader()。getResourceAsStream(" filename");

答案 1 :(得分:0)

我查了File的代码。我发现没有这样的构造函数构造一个带有文件对象的File对象。

如果您进行maven测试,请将资源文件复制到测试类。

试试这个

// this will show your resoure root.
File file = new File(getClass().getResource("/").getPath());


// debug you may find your file here.
File[] resoureces = file.listFiles();

或只是使用

File file = new File(getClass().getResource("/").getPath() + "someFile.properties");