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

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

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

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

1 ответ

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

Пожалуйста, посмотрите пример здесь (фрагмент примераJava ниже):

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

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

Другие вопросы по тегам