Java 我的文件可以';当我尝试用作测试资源时,无法加载

Java 我的文件可以';当我尝试用作测试资源时,无法加载,java,junit,apache-commons,Java,Junit,Apache Commons,这是我的项目结构:我有一个xml文件,我需要将它用于我的junit测试用例,我不知道为什么我不能获得这个文件 即使我用intellij将目录标记为测试目录资源,也没有办法。 以下是我的方法: @Before public void init() throws Exception { xml = IOUtils.toString( this.getClass().getResourceAsStream("reponse.xml"),

这是我的项目结构:我有一个
xml文件
,我需要将它用于我的
junit测试用例
,我不知道为什么我不能获得这个文件

即使我用intellij将目录标记为测试目录资源,也没有办法。

以下是我的方法:

@Before
    public void init() throws Exception {

        xml = IOUtils.toString(
                this.getClass().getResourceAsStream("reponse.xml"),
                "UTF-8"
        );
        ......
    }
我总是得到相同的错误跟踪:

java.lang.NullPointerException
        at java.io.Reader.<init>(Reader.java:78)
        at java.io.InputStreamReader.<init>(InputStreamReader.java:113)
        at org.apache.commons.io.IOUtils.copy(IOUtils.java:1906)
        at org.apache.commons.io.IOUtils.toString(IOUtils.java:778)
        at org.apache.commons.io.IOUtils.toString(IOUtils.java:803)
        at fr.gouv.crpcen.restitution.ParserServiceTest.init(ParserServiceTest.java:113)
java.lang.NullPointerException
在java.io.Reader上。(Reader.java:78)
位于java.io.InputStreamReader。(InputStreamReader.java:113)
位于org.apache.commons.io.IOUtils.copy(IOUtils.java:1906)
位于org.apache.commons.io.IOUtils.toString(IOUtils.java:778)
位于org.apache.commons.io.IOUtils.toString(IOUtils.java:803)
位于fr.gouv.crpcen.restitution.ParserServiceTest.init(ParserServiceTest.java:113)

尝试将“reponse.xml”更改为“/reponse.xml”

您遗漏了一些小细节,如果没有这个,它将无法工作

以下是固定版本:

@Before
public void init() throws Exception {

    xml = IOUtils.toString(
            this.getClass().getResourceAsStream("/response.xml"),
            "UTF-8"
    );
    ......
}

我检查过它的工作方式很有魅力。

当您使用相对路径(不是以“/”开头)加载资源时,它是相对于调用getResourceAsStream()的类加载的。因此,这是在创建我的CALS的同一级别上进行的搜索(即包java?),我的意思是当路径没有“/”时@o:这个问题应该能让我们了解一下: