【问题标题】:Using a HSQLDB in in-memory mode for testing with maven在内存模式下使用 HSQLDB 使用 maven 进行测试
【发布时间】:2018-09-23 13:34:38
【问题描述】:

情况:

目前我们在服务器模式下使用 HSQLDB 进行集成测试。我们正在使用自制的 maven 插件来初始化数据库以满足我们的测试需求(创建模式、使用 flyway 脚本迁移等)。

现在为了加快集成测试,我想在内存模式下使用 HSQL。

问题:

当我更改连接 url 以便它们在内存模式下使用 HSQLDB 时,初始化以及来自集成测试的连接运行良好。但是已经初始化的数据和模式在集成测试中是不可用的。

原因是,当 maven 插件完成初始化数据库时,用于该操作的 jvm 似乎已关闭,并且来自集成测试的连接在内存中创建了 一个普通的空 HSQLDB

问题:

有没有办法告诉 maven 插件在同一个 JVM 或进程或任何需要的东西中运行,以便插件和集成测试共享相同的内存并因此使用相同的 hsqldb?

【问题讨论】:

    标签: maven maven-2 maven-plugin hsqldb


    【解决方案1】:

    是的,您可以强制测试在与 Maven 及其插件相同的 JVM 进程中运行。相应的设置称为forkCount,请参阅SurefireFailsafe 的相应文档。

    注意:以下示例使用当前 (2021) 版本的插件,但 forkCount 参数已在 2013 年的 2.14 版本中引入。

    万无一失

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M5</version>
        <configuration>
            <forkCount>0</forkCount>
        </configuration>
    </plugin>
    

    故障保护

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>3.0.0-M5</version>
        <configuration>
            <forkCount>0</forkCount>
        </configuration>
    </plugin>
    

    【讨论】:

      猜你喜欢
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      相关资源
      最近更新 更多