Запуск базы данных один раз для каждого комплекта Spek

Некоторые тесты требуют запуска базы данных, например, с помощью библиотеки тестовых контейнеров. Очевидно, требуется время, чтобы загрузить его.

Есть ли способ сделать это только один раз для всего набора Spek, который охватывает несколько файлов? Документы ничего не говорят об этом.

Кто-нибудь знает, почему это не было реализовано?


person kboom    schedule 27.06.2018    source источник


Ответы (1)


Этот ответ не относится к Spek, но объекты Testcontainers предоставляют простой метод start() и stop(), а это означает, что вам не нужно полагаться на тестовую среду для управления жизненным циклом вашего контейнера, если вы этого не хотите. Вы можете создать контейнер в статическом объекте, отдельном от ваших тестовых классов, а затем получить к нему доступ во всех тестах, если хотите.

См. пример здесь (Java фрагмент примера ниже):

static {
    GenericContainer redis = new GenericContainer("redis:3-alpine")
            .withExposedPorts(6379);
    redis.start();
}

Я бы предположил, что эквивалент в Kotlin должен быть довольно простым, как object (или аналогичный).

person Richard North    schedule 13.11.2018