我正在使用我自己旋转的ORM。应用程序中一切正常。现在,我需要能够修改配置,以便当测试用例运行时,测试与内存数据库对话。
我正在用maven构建。
我有一个申请。src/main/resources中的Yml文件,应用程序在启动时读取。我还有第二个文件application-derby。该文件存在于src/test/resources中。我尝试了各种各样的注释,试图让它正常工作,但src/main/resources/application。Yml文件似乎总是被读取并用于配置我的bean。
@SpringBootTest
//@ActiveProfiles("derby")
@TestPropertySource(locations="classpath:application-derby.yml")
class StormApplicationTests {
我试过这两种注释,似乎都不起作用。这两个yaml文件是相同的,除了test/resources中的配置是:
dataSource:
jdbcUrl: "jdbc:derby:memory:flashDB;create=true;user=flashmanager;password=password"
driverClassName: org.apache.derby.jdbc.EmbeddedDriver
maximumPoolSize: 1
username: flashmanager
password: password
并且在src/java/resources中为postgres数据库配置了jdbc url值和驱动类。
我在这里错过了什么?
经过更多的尝试,这组注释似乎解决了我的问题。
我在测试用例上使用的:
@SpringBootTest
@ActiveProfiles("derby")
@TestPropertySource(locations="classpath:application-derby.yml")
class StormApplicationTests {
类包含以下代码:
@Autowired
private MyConfig config;
@Test
void contextLoads() {
Assert.isTrue(true, "default test");
}
我在Assert上设置了一个断点,并检查配置变量的值,以查看自动连接的值是什么。以前是postgres配置,现在是derby配置。花了一点时间才弄清楚需要什么。