Как добавить настройки до @SpringBootTest и запустить только один раз? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть метод настройки 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, онбудет предоставлен всем тестовым классам.Между тем, это не остановит других разработчиков, создающих новый контейнер, также для некоторых угловых сценариев.

У меня есть неполная идея:

  1. Добавить триггер конструктора в основной класс SpringBoot, еслизапускается Test, запускает конструктор контейнера Docker.Но это также означает, что я добавил некоторый код, связанный с тестами, в основной класс, чтобы они были связаны.Лично ненавижу это случается
  2. Переопределить SpringBootTest.Меня перебивает то, что мне следует это делать.

Пожалуйста, поделитесь своими блестящими идеями, я буду признателен, если это решит эту проблему или ее часть.

1 Ответ

0 голосов
/ 08 декабря 2018

Если используется JUnit 5, см. Следующие ответы (возможно, с использованием пользовательских расширений, первоклассная поддержка будет предоставлена ​​командой JUnit позже)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...