Как перенести тестовые контейнеры на основе JDBC URL в Junit 5

#spring-boot #junit5 #testcontainers

#весенняя загрузка #junit5 #тестовые контейнеры

Вопрос:

Я работал над тестированием spring boot testcontainers на основе JUnit 4.

Пример:

 @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 использует строку URL JDBC для запуска тестового контейнера с MySQL 5.6.

Теперь я хотел удалить junit 4 из проекта в пользу использования JUnit 5.

Есть ли у testcontainers Spring boot возможность инициировать контейнеры аналогичным образом (с использованием JDBC URL), но с использованием JUnit 5?

Если да — как это сделать или какой обходной путь можно использовать здесь?

Ответ №1:

Контейнеры в стиле URL-адресов JDBC не зависят от среды тестирования, вы можете использовать их с любым фреймворком, если вы запускаете его на JVM 🙂

Комментарии:

1. да, вы правы, моя проблема заключалась в том, что я исключил junit4 из зависимости maven контейнера mysql, ClassNotFound которая в этом случае генерируется (для TestRule класса). Таким образом, он зависит от junit4. Когда я удалил исключение, это сработало