Spring boot 不同数据库环境的集成测试
Posted
技术标签:
【中文标题】Spring boot 不同数据库环境的集成测试【英文标题】:Spring boot Integration test with different database environmets 【发布时间】:2018-03-22 13:33:45 【问题描述】:我有一组 Junit 测试用例。所有测试用例都必须针对不同的数据库环境执行。在 junit 测试中使用 '@RunWith(SpringJUnit4ClassRunner.class)' 时,spring boot 应用程序只启动一次。但是我需要使用不同的配置重新启动应用程序,包括 flyway 迁移和其他与环境相关的 application-.properties 来运行测试。我也尝试过使用参数化测试。在这种情况下,spring 应用程序也只启动一次。有什么方法可以实现吗?
【问题讨论】:
【参考方案1】:听起来您需要在测试中使用这些注释:
@RunWith(SpringRunner.class)
@SpringBootTest
@Import(MyTestsConfiguration.class)
更多详情请参考 Spring Boot 文档中的this page
【讨论】:
你能说得更具体些吗 @Priya 您是否在每次希望应用程序启动时使用不同的类?添加前两个注释(以及第三个,可选,如果您想覆盖默认配置)应该是您需要做的所有事情。 其实我不是每次都跑不同的班级。类文件对于所有环境都是相同的。在启动 spring boot 应用程序时,我将指定使用特定的配置文件来加载。 我建议您将测试拆分为单独的类。一个 class= 一个应用程序的启动 不会像一次又一次地复制相同的测试用例以上是关于Spring boot 不同数据库环境的集成测试的主要内容,如果未能解决你的问题,请参考以下文章
运行 Spring Boot 集成测试时出现 Liquibase 问题