【发布时间】:2014-08-01 18:06:08
【问题描述】:
目前,我们有一个用于所有集成测试的数据库实例。 oracle 数据库模式由一堆 DDL 同步。然后我们使用 DBunit 在测试之间填充和截断表。这种方法有两个问题:
- 准备数据库的时间超过了测试时间
- 有时,通常是测试失败,测试数据会溢出到后续测试并导致更多失败。
我想通过为每个测试创建一个内存数据库(例如 h2)来隔离测试。我计划配置 EclipseLink 以生成 DDL(因为将 oracle DDL 转换为其他东西将是我想象的一场噩梦)。那时唯一的问题是创建触发器。
所以我有两个问题...
- 我能否从现有的 oracle 模式创建一个内存数据库(h2 或其他),包括触发器?
- 或者,我可以使用我的 entitymanager(DDL 生成)创建一个内存数据库,并在测试执行之前动态创建一堆触发器吗?
技术栈:
- 春天:3.2.8
- Spring Data JPA:1.5.3
- Eclipse 链接:2.5.1
- 甲骨文:11
我熟悉如何实例化 Spring Test Integration 环境以加载内存数据库。只是不知道如何翻译 oracle 的东西(特别是触发器)。
【问题讨论】:
标签: java eclipselink integration-testing spring-data-jpa spring-test