java - Spring:如何针对多个数据源测试同一个类?

标签 java spring junit

考虑这个例子

@Test
public TestMyProjectIntegration {

  @Rule
  public JpaRule jpaRule = new JpaRule(H2);

  @Test
  ...
}
  • 我想在 localhost 中针对 H2 数据库运行我的集成测试,
  • 我想在 staging//Jenkins
  • 中针对 MySQL 数据库运行我的集成测试

我最初想到使用 Spring Profiles并使用 spring.profiles.active=developmentspring.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/

相关文章:

Akka 的 Java 聚合器

java - 如何使用 Firebase 的 Java Admin SDK 在单个位置更新对象而不覆盖其他字段?

java - verifyListener 和 FocusListener 之间的冲突

spring - Mongotemplate.updateFirst() 不更新@LastModifiedDate

java - 如何使用spring aop自动设置date_created

java - 是否存在基于 AspectJ 的分析器包?

java - 单元测试与 Spring 的集成测试

java - Spring、Struts、Hibernate、JavaServer Faces、Tapestry 有什么区别?

java - JUnit 测试抛出 java.lang.NoClassDefFoundError

java - 如何使用不同的 JUnit Runner 运行 Spring 单元测试?