opensource独立替代oracle 11g R2

时间:2013-01-30 21:01:35

标签: unit-testing junit oracle11g derby

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

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

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

  

HSQL / Oracle Berkley DB / Derby DB

这样我们就可以像DB结构那样重新创建oracle并继续测试而不需要对测试用例进行任何更改[因为相同的测试用例也在我们的巡航控制中运行]

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

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

感谢您的帮助。

谢谢, Ayusman

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

答案 1 :(得分:1)

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