#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. Когда я удалил исключение, это сработало