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

2022-09-02 20:55:21

我有一个 .file.datsrc/main/resources

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

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

但是文件不存在于任何想法?target/test-classes


答案 1

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

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

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

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

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

答案 2

如果文件位于

src/main/resources/file.dat

您可以获取文件的 URL:

getClass().getResource(“/file.dat”);


推荐