用于集成测试的嵌入式或托管Oracle实例



对于MySQL,MXJ连接器使启动托管MySQL实例变得非常容易。

我知道Oracle提供了用于快速安装的Oracle XE,但我只找到了一个需要安装的RPM发行版。有没有一个包装整齐的jar,我可以直接放在类路径中,然后通过调用特定的JDBC url、la HSQLDB或MXJ来启动它?

我感兴趣的是让开发人员在本地使用它来运行测试,以及在我们的持续集成服务器上。

简短的回答是否定的。Oracle是数据库中的一大块。除其他外,它通常希望自己由自己的特殊用户而不是客户端用户运行。

为了简单起见,您最好选择一个单独的数据库服务器,每个开发人员在数据库中都有自己的用户名/密码(因此也有自己的独立模式)。

尽管Oracle不提供嵌入式数据库,但启动运行Oracle XE的本地Docker容器可能是适应Oracle特定本地集成测试的理想方式。由于Docker容器在设计上是短暂的,因此数据库也可以根据需要完全拆除,以提供干净的沙盒。

我在DockerHub上发现的alexeiled/docker-oracle-xe-11g图像有特别清晰的设置和文档说明:https://hub.docker.com/r/alexeiled/docker-oracle-xe-11g/

旋转Docker容器后,请确保:

  • 首先连接到APEX网络控制台,按照说明登录
  • 然后打开Oracle SQL Developer并首先选择Reset Password...。否则,当试图在Oracle 11.2.0.2.0(64位)中获取连接时,可能会引发以下错误java.lang.AthmeticException

正如文档所描述的,docker run命令还可以设计为在容器启动时自动运行SQL脚本,这在CI/集成测试工作流程中也非常有价值。

希望这能有所帮助!

最新更新