考虑这个例子
@Test
public TestMyProjectIntegration {
@Rule
public JpaRule jpaRule = new JpaRule(H2);
@Test
...
}
- 我想在
localhost
中针对H2
数据库运行我的集成测试, - 我想在
staging
//Jenkins 中针对
MySQL
数据库运行我的集成测试
我最初想到使用 Spring Profiles并使用 spring.profiles.active=development
和 spring.profiles.active=staging
我可以控制,但是
由于我将 JpaRule
硬编码为 H2
,所以我不知道如何在 spring 时将此属性更改为
更改MySQL
。 profiles.active
问题
Spring 推荐的在测试期间指向不同数据库的方法是什么?
最佳答案
您可以使用传递数据库详细信息的系统属性调用测试,例如 -Dtest.database=H2
并在从 jenkins 调用测试时更改值
@Rule
public JpaRule jpaRule = new JpaRule(System.getProperty("test.database"));
关于java - Spring:如何针对多个数据源测试同一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23850148/