我想在执行集成测试时切换测试数据库配置。目前,我使用配置文件“ it”在开发模式下使用数据库。当我在Jenkins CI上执行集成测试时,我想使用另一个配置文件,例如'jenkins-it'。我不想使用内存数据库(我使用Postgresql)。 我对Jenkins的测试是由Gradle使用以下命令启动的:gradlew test
这是我注释集成测试类的方式:
@RunWith(SpringRunner::class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@ActiveProfiles("it")
public MyClassIT {
@Test
...
}
它可以在开发中使用,因为它使用了我的'application-it.yaml'和定义的开发数据源。这是'application-it.yaml'的内容:
spring:
datasource:
url: "jdbc:postgresql://localhost:5432/mfttest?currentSchema=audit"
username: "testuser"
password: "testuser"
jpa:
hibernate:
ddl-auto: create-drop
show-sql: true
properties:
hibernate:
format_sql: true
liquibase:
enabled: false
在Jenkins CI上,如何切换到Jenkins数据源使用'application-jenkins-it.yaml'?
答案 0 :(得分:0)
我认为这里的常用方法是使用application-local.yaml,除了常规application.yaml(或其他配置文件)外,它还包含“开发”环境配置。在“开发”模式下,您可以使用本地配置文件运行应用程序或进行测试。
您不将application-local.yaml文件提交到源代码管理(如果使用git,则使用gitignore)。这样,您可以拥有2个单独的配置。这就是我们的方法,我认为到处都可以做到这一点。
此外,您可以使用testcontainers来在任何地方运行集成测试,而不必担心数据库和所有其他依赖性。