每个Spek套件一次运行数据库

时间:2018-06-27 16:39:14

标签: testing kotlin spek testcontainers

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

是否有一种方法可以在整个Spek套件(跨越多个文件)中仅执行一次?文档对此无话可说。

任何人都知道为什么尚未实施吗?

1 个答案:

答案 0 :(得分:0)

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

请参见示例here(下面的 Java 示例代码段):

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

我认为Kotlin中的等效项应该很容易成为object(或类似名称)。