+-
java – Spring boot:如何在单元测试中从classpath读取资源
我试图在我的单元测试中从类路径中读取一个文件:

@Value("classpath:state.json")
Resource stateFile;

我在src / test / resources目录中有state.json文件.
当我尝试使用stateFile.getInputStream()读取此文件时,它不会返回任何内容.我究竟做错了什么?

我的测试类注释如下

@RunWith(SpringRunner.class)
@SpringBootTest

我可以看到,如果我尝试使用不正确的文件,代码将失败.所以我认为它在类路径中看到文件,但由于某种原因没有读取内容.

最佳答案
我刚碰到这个.我正在使用Maven.我看了一下我的target / test-classes文件夹,我的资源文件不在那里(即使它在我的src / test / resources文件夹中).

我运行了mvn clean install,然后重新检查了我的target / test-classes文件夹,资源文件就在那里.之后,我的测试能够找到文件并且测试工作正常.

因此,在您执行mvn clean之前,似乎不会复制您的资源. JUnit正在查看由maven构建的类路径,直到文件实际进入target / test-classes文件夹,JUnit将无法找到它.

点击查看更多相关文章

转载注明原文:java – Spring boot:如何在单元测试中从classpath读取资源 - 乐贴网