加载不同的 yaml 或属性文件或覆盖某些属性
当我们使用 @SpringApplicationConfiguration
时,它将使用 application.yml
[properties]的配置,在某些情况下这是不合适的。因此,要覆盖属性,我们可以使用 @TestPropertySource
注释。
@TestPropertySource(
properties = {
"spring.jpa.hibernate.ddl-auto=create-drop",
"liquibase.enabled=false"
}
)
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class ApplicationTest{
// ...
}
我们可以使用 @TestPropertySource
的属性属性来覆盖我们想要的特定属性。在上面的例子中,我们压倒一切的属性 spring.jpa.hibernate.ddl-auto
到 create-drop
。而 liquibase.enabled
到 false
。
加载不同的 yml 文件
如果要完全加载不同的 yml 文件进行测试,可以在 @TestPropertySource
上使用 locations 属性。
@TestPropertySource(locations="classpath:test.yml")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class ApplicationTest{
// ...
}
或者选择
选项 1:
你也可以加载不同 YML 文件我放置一个 YML 文件上 test > resource
目录
选项 2:
使用 @ActiveProfiles
注释
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@ActiveProfiles("somename")
public class MyIntTest{
}
你可以看到我们正在使用 @ActiveProfiles
注释,我们将 somename 作为值传递。
创建一个名为 application-somename.yml
的文件,测试将加载此文件。