无法从资源测试文件夹加载资源

时间:2014-06-23 11:10:35

标签: java maven junit intellij-idea resources

我正在尝试这个简单的测试:

@Test
public void testResourceExist() {
    URL file = getClass().getResource("sample.htm");

    Assert.assertNotNull(file);
}

我的目录结构是:

src
  - main
      - java
      - resources
  - test
      - java
          ResourcesTest.java
      - resources
          sample.htm

我正在使用IntelliJ Idea和maven甚至Ide自动填充sample.htm文件。 如果我检查test-classes文件夹,我可以在那里看到sample.htm文件。

2 个答案:

答案 0 :(得分:1)

我只需要在资源名称之前添加一个斜杠。

" /sample.htm"而不是" sample.htm"及其工作

答案 1 :(得分:1)

实际上,您不应将其作为文件资源读取,而应将其作为类路径资源读取。 resources中的所有文件都打包为jar的一部分,而不是直接放在文件系统上,并且所有类路径都是绝对的,所以开始时不需要斜杠。相反,您在此处遇到的错误是您尝试使用getResource()而不是类路径资源,使用getClasspathResourceAsStream()或类似内容来读取文件资源。如果您使用后者,那么您将不需要斜杠。