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 在 运行 测试之前构建应用程序。
如何从 '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 在 运行 测试之前构建应用程序。