Spring - 运行 来自 IDE 的测试 - 如何从 'application-test.properties' 这样的文件加载测试属性

Spring - Run test from IDE - how to load test properties from a file like 'application-test.properties'

如何从 'application-test.properties' 这样的文件加载测试属性?

文件存储在src/test/resources文件夹中。我也将文件放在所有可能的文件夹中。当 运行 将测试作为 Maven 测试的一部分 运行 时,一切正常。 当 运行 从 (IntelliJ) IDE 进行新的(单个)测试时,每次我得到相同的错误消息:

Caused by: java.io.FileNotFoundException: class path resource [application-test.properties] cannot be opened because it does not exist

这是测试class:

@RunWith(SpringRunner.class)
@EnableAutoConfiguration
@ComponentScan(basePackages = {"nl.deholtmans.tjm1706.todolist"})
@PropertySource( "application-test.properties")
public class TodoListServiceTest {
    @Autowired
    TodoListService todoListService;
    @Test
    public void testBasic() { ... }

看来我必须 运行 第一次从 Maven 进行测试。这是为什么?

Spring 如果配置文件被激活,引导将自动加载正确的属性文件。在测试中,您可以为此使用 @ActiveProfiles 注释。

接下来您需要确保您实际使用正确的 Spring 引导基础结构来 运行 您的测试,使用 @SpringBootTest。也就是说,您的测试 header 应该如下所示

@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
public class TodoListServiceTest { ... }

当然要确保您的 IDE 在 运行 测试之前构建应用程序。