考虑这个例子
@Test
public TestMyProjectIntegration {
@Rule
public JpaRule jpaRule = new JpaRule(H2);
@Test
...
}
H2
和localhost
数据库运行集成测试MySQL
中的staging
数据库运行集成测试// Jenkins 我最初想到使用Spring Profiles以及可以控制的
spring.profiles.active=development
和spring.profiles.active=staging
,但是因为我将
JpaRule
硬编码为H2
,所以我不知道当MySQL
更改时如何将此属性更改为spring.profiles.active
。问题
春天推荐的在测试过程中指向不同数据库的方法是什么?
最佳答案
您可以使用传递数据库详细信息(例如-Dtest.database=H2
)的系统属性来调用测试,并在从jenkins调用测试时更改值
@Rule
public JpaRule jpaRule = new JpaRule(System.getProperty("test.database"));