如何将基于 JDBC URL 的测试容器迁移到 Junit 5

Posted

技术标签:

【中文标题】如何将基于 JDBC URL 的测试容器迁移到 Junit 5【英文标题】:How to migrate JDBC URL based testcontainers to Junit 5 【发布时间】:2019-08-13 11:55:05 【问题描述】:

我已经基于 JUnit 4 进行了 spring boot + testcontainers 测试。

例子:

@RunWith(SpringRunner.class)
@SpringBootTest
public Test 
    ...
    public void someTest() 
        ...
    
    ...

测试属性:

spring:
  datasource:
    driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
    url: jdbc:tc:mysql:5.6://hostname/db?TC_MY_CNF=mysql
    username: user
    password: pass

此测试正常运行,testcontainers 使用 JDBC Url 字符串使用 MySQL 5.6 启动测试容器。

现在我想从项目中删除 junit 4 以支持使用 JUnit 5。

testcontainers + Spring boot 是否能够以类似的方式(通过使用 JDBC URL)但使用 JUnit 5 来​​启动容器?

如果是 - 怎么做,或者这里可以使用哪种解决方法?

【问题讨论】:

【参考方案1】:

JDBC URL 样式容器与测试框架无关,只要在 JVM 上运行,您就可以将其与任何框架一起使用:)

【讨论】:

是的,你是对的,我的问题是我从 mysql 容器 maven 依赖项中排除了 junit4,ClassNotFound 在这种情况下被抛出(对于TestRule 类)。所以它依赖于junit4。当我删除排除它的工作原理

以上是关于如何将基于 JDBC URL 的测试容器迁移到 Junit 5的主要内容,如果未能解决你的问题,请参考以下文章

从 JDBC 迁移到 JPA [关闭]

红帽公司开始将其 OpenStack 平台迁移到容器

测试容器甲骨文

从 JDBC 源迁移数据时如何优化分区?

如何将django部署从顶级目录迁移到子目录下(NGINX UWSGI DJANGO)

使用 Docker 和 Jenkins 自动化 Flyway 迁移