无法通过测试用例从 src/main/resources 访问文件



我在src/main/resources有一个file.dat

当我尝试测试通过 jar 文件加载此文件的类时,测试失败,因为它无法在路径 ( I/O Exception ) 中找到该文件。我通过测试得到的路径是:

/home/usr/workspace/project/target/test-classes/file.dat

但是该文件不存在 target/test-classes 有什么想法吗?

在主程序运行时,来自 src/main/resources 的文件将在类路径上可用,而来自 src/main/resourcessrc/test/resources 的文件在测试运行期间将在类路径上可用。

检索驻留在类路径上的文件的一种方法是:

Object content = Thread.currentThread().getContextClassLoader().getResource("file.dat").getContent();

.. 其中content的类型取决于文件内容。您还可以将文件作为输入流获取:

InputStream contentStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file.dat");

如果文件在

src/main/resources/file.dat

您可以获取文件的 URL:

getClass().getResource("/file.dat");

最新更新