1

一些测试需要运行数据库,例如,使用测试容器库。显然,启动它需要时间。

有没有办法在跨多个文件的整个 Spek 套件中只执行一次此操作?文档对此只字未提。

任何人都知道为什么这还没有实施?

4

1 回答 1

0

这个答案不是特定于 Spek 的,但是 Testcontainers 对象公开了一个简单的start()方法stop(),这意味着如果你不想的话,你不必依赖测试框架来控制你的容器生命周期。您可以在与测试类分开的静态对象中创建一个容器,然后根据需要在所有测试中访问它。

请在此处查看示例(下面的Java示例片段):

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

我想 Kotlin 中的等价物应该很容易作为object(或类似的)。

于 2018-11-13T09:42:40.560 回答