有些测试需要运行数据库,例如,使用测试容器库。启动它显然需要时间。
有没有办法对跨越多个文件的整个 Spek 套件只执行一次此操作?文档对此没有任何说明。
有人知道为什么这还没有实现吗?
最佳答案
这个答案不是特定于 Spek 的,但是 Testcontainers 对象公开了一个简单的 start()
和 stop()
方法,这意味着您不必依赖如果您不想,可以使用测试框架来控制您的容器生命周期。您可以在独立于测试类的静态对象中创建容器,然后根据需要在所有测试中访问它。
请看例子here (Java 下面的示例片段):
static {
GenericContainer redis = new GenericContainer("redis:3-alpine")
.withExposedPorts(6379);
redis.start();
}
我认为 Kotlin 中的等价物应该很容易作为 object
(或类似物)。
关于testing - 每个 Spek 套件运行一次数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51067702/