0

我有一个项目的大型测试代码库。junit 测试用例主要使用 oracle DB 进行单元测试。我们正在尝试使单元测试更加本地化,​​以便多个开发人员可以在他们的本地机器上创建测试特定的数据,并且测试用例/开发可以更快地完成。

我们当前的数据库包含多个模式、同义词和存储过程。

我们正在尝试识别数据库,例如

HSQL/Oracle Berkley DB/Derby DB

这样我们就可以重新创建类似数据库结构的 oracle 并继续测试,而无需对测试用例进行任何更改 [因为相同的测试用例也在我们的 Cruisecontrol 上运行]

主要目标是能够拥有一个本地数据库设置,该设置可以复制类似于产品的数据库结构,而无需对当前测试套件进行任何更改。

是否有任何数据库(可以在文件系统上本地创建数据库)?

感谢你的帮助。

谢谢,阿尤斯曼

4

2 回答 2

1

Derby 是单元测试的绝佳选择。

但是,Derby 非常严格地遵守 SQL 标准。

如果您的数据库操作(表模式、SQL 语句等)非常符合 SQL 标准,您可能会发现针对 Derby 运行测试很简单。

但是,如果您在架构或 SQL 中使用了特定于 Oracle 的供应商扩展,您会发现 Derby 通常不会实现这些 Oracle 扩展。

此外,存储过程语言因供应商而异,因此 Derby 可能不接受您的 Oracle 存储过程。

于 2013-01-31T14:39:12.163 回答
1

根据我的经验,尝试在 Oracle 模式下使用 H2 数据库。它通常确实接近 Oracle DB 风格。但是自定义函数和存储过程,您必须创建 ALIAS 以让 H2 知道这是一个自定义函数或过程,这是用于此目的的 Java 类。此外,如果您有 VIEWS 和其他东西,您仍然可以创建它们。希望这可以帮助。

于 2013-04-17T17:02:37.390 回答