java - h2数据库测试maven

标签 java database testing maven-2 h2

使用H2数据库1.3.169测试java应用

我正在以两种不同的方式测试我的应用。

  1. 内存数据库是在与应用程序不同的进程中创建的。我启动 H2 控制台并从脚本创建数据库。所有测试均通过。
  2. 内存数据库在应用程序启动时在与应用程序相同的进程中创建。所有测试都在 Intellij IDEA 11.3 中通过。使用 Maven 2 测试某些测试失败(为一个实体创建、更新、删除,预期数据集与结果不匹配)。好像数据库没有更新。它不会每次都发生,有时构建成功。所有测试都经过验证,都适用于 Oracle 和 DB2。

问题的原因可能是什么?

最佳答案

当您默认配置与内存中 H2 DB 的连接时,会发生这种情况,例如:dbc:h2:mem:test

在那种情况下,DB 存在直到他至少有一个 Activity 连接。当最后一个连接关闭时,数据库也关闭了。取决于您使用/重用连接(可能是池化)和运行测试延迟的内容,您可能会遇到竞争条件并获得意想不到的结果。

可以通过连接参数 DB_CLOSE_DELAY=-1 来修复,这意味着 db 仅在 VM 死机时关闭。

这是有用的链接 http://www.h2database.com/html/features.html#closing_a_database

关于java - h2数据库测试maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14051566/

相关文章:

java - 如何将变量从javascript传递到另一个jsp页面?

java - 如何使用具有自定义文件扩展名的 H2 数据库?

java - Java 风格的 Groovy 和 Java 一样快吗?

java - 使用 Sitemesh 装饰器提取 DIV 的内容

java - PHP - 为脚本/样式文件设置不同的目录

unit-testing - 如何将单元测试项目添加到我现有的 asp.net core 项目中?

php - 如何在PHP代码中添加测试参数

database - 数据库。如何在附加数据库中创建索引?

java - GWT + MySQL - 如何创建连接?

testing - 我如何模拟 ApolloMutation 组件?