maven - HSQL 单元测试——如何创建多个内存模式?

标签 maven junit hsqldb

我想在 Web 应用程序的 DAO 单元测试中使用 hsql。 Web 应用程序是针对 mysql 编写的,并在同一个 mysql 数据库中使用三种不同的模式。某些模式与其他模式中的数据具有 FK 关系。如果我要进行单元测试,我必须能够针对可以包含多个模式的数据库执行。

我知道 HSQL 支持多种模式,但我不知道如何配置 hsql 为内存数据库设置多个模式。我读到我可以在 server.properties 文件中定义多个模式,但是该文件需要位于调用 java 类的位置——junit.jar 位置?如果是这样,那将很难在我的 Java Maven 应用程序中得到支持。我怎样才能:

  • 运行内存中的 hsql 数据库以启动三个数据库?
  • 我会将 server.properties 文件放在我的 Maven 应用程序中的什么位置?
  • 我可以指出 hsql 在 junit jar 所在的位置以外的位置使用 server.properties 文件吗(这对我来说是一个showstopper)?
  • 是否可以仅通过欺骗的 jdbc url 为内存数据库配置多个模式?

  • 我希望我可以解开彼此之间的模式,但目前这是不可能的。

    谢谢你的帮助!

    最佳答案

    HSQLDB 支持同一数据库中的多个模式。外键可以引用来自不同模式的表。以下内容适用于 http://hsqldb.org 提供的最新 HSQLDB 2.2.6 快照。

  • 在运行测试之前,执行 CREATE SCHEMA schemaname对于每个架构。
  • 无论在哪里,您都可以在运行时在命令行参数上指定绝对路径。请参阅服务器上的 HSQLD 指南和 JavaDoc。
  • 是的。
  • 不可以。您使用 SQL 语句来创建模式。

  • 请注意,您有两种运行 HSQLDB 的选项,一种是作为服务器,另一种是作为嵌入式数据库。在服务器的情况下,它必须在测试运行之前启动。在这两种情况下,您都需要在测试之前连接到数据库并创建模式。

    关于maven - HSQL 单元测试——如何创建多个内存模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8032339/

    相关文章:

    maven - 在使用 spring-boot-maven-plugin 创建的嵌套可执行 jar 中启动主类

    java - mvn release :prepare 上的 Maven 发布插件错误

    java - Maven:testCompile 失败多点

    google-app-engine - datastore-connector-latest.jar的来源在哪里?我可以将其添加为 Maven 依赖项吗?

    java - 如何运行多个 JavaFX 测试?

    java - 无法在 JUNIT 测试之间删除我的 Elasticsearch 数据文件夹

    exception - 如何在 HSQLDB 过程或函数中引发异常

    java - HSQLDB - 违反完整性约束 : unique constraint or index violation; BLOCKS_PK table: BLOCKS

    java - Assert.assertEquals(object 1, object2) 如何比较两个对象?

    java - HSQLDB 文件模式的快速切换替代方案(我现在需要并发访问)