junit DBUnit:任何支持Oracle PLSQL的内存数据库?

qlzsbp2j  于 4个月前  发布在  Oracle
关注(0)|答案(2)|浏览(63)

我正在集成DBUnit以对我的应用程序进行单元测试,然后我遇到了H2内存DB不支持SQL脚本中指定的PLSQL函数的问题。
那么,有没有人可以建议一个内存数据库(H2的替代品),我可以与DBUnit集成,并可以执行Oracle PL/SQL函数?

omvjsjqw

omvjsjqw1#

正如第二个评论所提到的,在PL/SQL过程、函数和其他特性方面,除了Oracle DB之外,没有什么能做Oracle所做的事情。
因此,要使用DBUnit,解决方案将是一个物理Oracle数据库,它将像H2内存中的数据库一样工作。

3hvapo4f

3hvapo4f2#

我知道这篇文章是7年前的,但如果你和我一样,现在偶然发现了这个问题,你可以尝试Testcontainers。这是一种为你的测试创建Docker容器的方法。它们也支持OracleFree和OracleXE模块。
规避云开发挑战的一种方法是依赖于内存数据库、嵌入式服务、模拟和其他生产依赖关系的伪副本。然而,这些方法也带来了自己的问题(例如,内存服务可能不具备生产服务的所有功能,并且行为略有不同)。
它非常简单,您将拥有一个具有生产系统所有功能的Oracle DB。

var oracle = new OracleContainer(DockerImageName.parse("gvenzl/oracle-xe:21-slim-faststart"));
oracle.start();

字符串
参考:https://testcontainers.com

相关问题