Spring 引导版本 2。3.x src/test/resources 已删除
Spring Boot version 2.3.x src/test/resources removed
似乎在 Springboot 版本 2.3.x 中,他们已经删除了 src/test/resources 文件夹,
我从start.spring.io下载了一个骨架但是没看到,目前的项目结构如下,在这种情况下我如何使用测试特定的属性文件,问题甚至如果我创建一个 src/test/resources 文件夹并在其中放入一个 test.property 文件,但在我 运行 测试期间找不到它,非常感谢任何帮助。
我在 start.spring.io
中生成骨架项目时选择的选项
你在用什么IDE?该项目是否使用 Maven?在带有 Maven 的 Eclipse 中,如果您右键单击 src/test 并选择新建 -> 源文件夹,并将其命名为资源,它应该由 Maven 创建并添加到测试类路径中。
将适当的文件放入 src/main/resources 后,src/test/resources 和 运行
try(final Stream<String> fileStreamFromClasspath = Files.lines(Path.of(ClassLoader.getSystemResource("test.file").toURI())))
{
fileStreamFromClasspath.forEach(l -> System.out.println(l)); // NOSONAR
}
try(final Stream<String> fileStreamFromFilesystem = Files.lines(Path.of(("src/main/resources/test.file"))))
{
fileStreamFromFilesystem.forEach(l -> System.out.println(l)); // NOSONAR
}
try(final Stream<String> testFileStreamFromFilesystem = Files.lines(Path.of(("src/test/resources/test.file"))))
{
testFileStreamFromFilesystem.forEach(l -> System.out.println(l)); // NOSONAR
}
产生输出:
This is the test test file.
This is the main test file.
This is the test test file.
经过大量研究,我找到了答案,因此 src/test 下的“资源”文件夹已作为我们可以从 start.spring.io 下载的骨架项目的一部分删除,但现在他们包含了一个新的构建任务,我的项目在 gradle 中,但我相信 Maven 也是如此,gradle 中这个任务的名称是“processTestResources”,它会复制你的任何内容在你的 src/test/resources
文件夹中有 <Project_HOME>/build/resources/test
,它在类路径中,你可以像以前一样访问你的资源,唯一的事情是现在你必须手动创建“资源”文件夹,现在问题已解决,感谢大家的意见。
似乎在 Springboot 版本 2.3.x 中,他们已经删除了 src/test/resources 文件夹,
我从start.spring.io下载了一个骨架但是没看到,目前的项目结构如下,在这种情况下我如何使用测试特定的属性文件,问题甚至如果我创建一个 src/test/resources 文件夹并在其中放入一个 test.property 文件,但在我 运行 测试期间找不到它,非常感谢任何帮助。
我在 start.spring.io
中生成骨架项目时选择的选项你在用什么IDE?该项目是否使用 Maven?在带有 Maven 的 Eclipse 中,如果您右键单击 src/test 并选择新建 -> 源文件夹,并将其命名为资源,它应该由 Maven 创建并添加到测试类路径中。
将适当的文件放入 src/main/resources 后,src/test/resources 和 运行
try(final Stream<String> fileStreamFromClasspath = Files.lines(Path.of(ClassLoader.getSystemResource("test.file").toURI())))
{
fileStreamFromClasspath.forEach(l -> System.out.println(l)); // NOSONAR
}
try(final Stream<String> fileStreamFromFilesystem = Files.lines(Path.of(("src/main/resources/test.file"))))
{
fileStreamFromFilesystem.forEach(l -> System.out.println(l)); // NOSONAR
}
try(final Stream<String> testFileStreamFromFilesystem = Files.lines(Path.of(("src/test/resources/test.file"))))
{
testFileStreamFromFilesystem.forEach(l -> System.out.println(l)); // NOSONAR
}
产生输出:
This is the test test file.
This is the main test file.
This is the test test file.
经过大量研究,我找到了答案,因此 src/test 下的“资源”文件夹已作为我们可以从 start.spring.io 下载的骨架项目的一部分删除,但现在他们包含了一个新的构建任务,我的项目在 gradle 中,但我相信 Maven 也是如此,gradle 中这个任务的名称是“processTestResources”,它会复制你的任何内容在你的 src/test/resources
文件夹中有 <Project_HOME>/build/resources/test
,它在类路径中,你可以像以前一样访问你的资源,唯一的事情是现在你必须手动创建“资源”文件夹,现在问题已解决,感谢大家的意见。