У меня есть метод настройки docker DB, который в настоящее время находится в @BeforeAll
.В настоящее время, Construct, как показано ниже
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public DockerConstructorTest{
@BeforeAll
public static void setup(){
...
CreateContainer
...
}
@AfterAll
public static void done(){
...
Stop & Remove Container
...
}
}
Существует несколько тестовых классов, которые расширяют этот суперкласс Test, каждый тестовый класс создает один контейнер и удаляет его после завершения.Поэтому maven тратит много времени на управление докером.(Создание и удаление)
Мой вопрос заключается в том, что whether there's better way to deal with it
В идеале, я бы хотел, чтобы этот контейнер создавался и удалялся только один раз, как до запуска @SpringBootTest, онбудет предоставлен всем тестовым классам.Между тем, это не остановит других разработчиков, создающих новый контейнер, также для некоторых угловых сценариев.
У меня есть неполная идея:
- Добавить триггер конструктора в основной класс SpringBoot, еслизапускается Test, запускает конструктор контейнера Docker.Но это также означает, что я добавил некоторый код, связанный с тестами, в основной класс, чтобы они были связаны.Лично ненавижу это случается
- Переопределить SpringBootTest.Меня перебивает то, что мне следует это делать.
Пожалуйста, поделитесь своими блестящими идеями, я буду признателен, если это решит эту проблему или ее часть.