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

标签 testing kotlin spek testcontainers

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

有没有办法对跨越多个文件的整个 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/

相关文章:

kotlin - 将确定列表扩展为 Kotlin 中的变量

database - Kotlin 嵌套对象类

android - java.lang.ClassNotFoundException : com. intellij.junit5.JUnit5IdeaTestRunner 在 kotlin 中使用 spek

java - 为 Spek 使用 JUnit5 标签

testing - 如何使用 RequireJS 加载模块以在像 Jasmine 这样的测试框架中进行测试?

android - Android 上一个库项目的独立测试项目

ios - iOS 上的 Facebook Deferred Deep Linking 是否有效,如何在商店发布应用程序之前对其进行测试?

python - Robot Framework - 检查 xpath 定义的元素是否存在

json - kotlinx 序列化——进行多态子反序列化的最佳方式