Некоторые тесты требуют запуска базы данных, например, с использованием библиотеки тестовых контейнеров. Очевидно, что для его загрузки требуется время.
Есть ли способ сделать это только один раз для всего пакета Spek, который охватывает несколько файлов? В документации об этом ничего не говорится.
Кто-нибудь знает, почему это не было реализовано?





Этот ответ не зависит от Spek, но объекты Testcontainers предоставляют простой метод start() и stop(), а это означает, что вам не нужно полагаться на тестовую среду для управления жизненным циклом контейнера, если вы этого не хотите. Вы можете создать контейнер в статическом объекте, который отделен от ваших тестовых классов, а затем обращаться к нему во всех тестах, если хотите.
См. Пример здесь (фрагмент примера Ява ниже):
static {
GenericContainer redis = new GenericContainer("redis:3-alpine")
.withExposedPorts(6379);
redis.start();
}
Я полагаю, что эквивалент в Kotlin должен быть довольно простым, как object (или аналогичный).