我有一个prod / test / qa数据库只有Oracle的应用程序。 此外,我怀疑SQL查询是特定于Oracle的。 不幸的是,这个应用程序有第二个没有单元测试。
因此,我希望实现单元测试,特别是关于搜索组件(显然执行大量Oracle操作,包括创建表)。
通常,当我想运行测试时,我会启动一个嵌入式数据库(HSQL,作为示例),在该数据库上运行我的测试,并在测试结束时让它逐渐消失。
由于我对此应用程序的标准化级别缺乏信心,我宁愿在Oracle数据库上运行测试。因此,我想在测试开始时启动oracle数据库,用一些测试数据填充它并在测试结束时停止它。我怎样才能在maven环境中做到这一点?
答案 0 :(得分:3)
我知道你想要Oracle,但你也可以使用oracle mode flag
尝试使用h2jdbc:h2:~/test;MODE=Oracle
我在大多数项目中都有同样的需求,这是我发现的最接近Oracle的。您可以为少数缺少的函数定义别名。
答案 1 :(得分:2)
您可以使用exec-maven-plugin在Maven生命周期内启动任何应用程序,包括完整的Oracle实例。但是,您仍然需要在构建器等上安装它,这会使解决方案变得相当复杂。
那么我们在另一个项目中做了什么:
-D
提供此功能,例如,在Bamboo上,您可以包含构建计划密钥和编号)您可以使用sql-maven-plugin来执行SQL脚本。或flyway-maven-plugin如果使用Flyway。