我在 src/main/resources
中有一个 file.dat
。
当我尝试测试通过 jar 文件加载此文件的类时,测试失败,因为它无法在路径中找到该文件(I/O 异常
)。我通过测试得到的路径是:
/home/usr/workspace/project/target/test-classes/file.dat
但是 target/test-classes
中不存在这个文件,你知道吗?
最佳答案
来自 src/main/resources
的文件在主程序运行期间将在类路径上可用,而来自 src/main/resources
和 的文件src/test/resources
将在测试运行期间在类路径上可用。
检索驻留在类路径中的文件的一种方法是:
Object content = Thread.currentThread().getContextClassLoader().getResource("file.dat").getContent();
.. content
的类型取决于文件内容。您还可以将文件作为 InputStream 获取:
InputStream contentStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file.dat");
关于java - 无法通过测试用例从 src/main/resources 访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18875635/