【问题标题】:Spring boot test containersSpring Boot 测试容器
【发布时间】:2021-10-19 06:18:19
【问题描述】:

是否可以将测试容器(即 oracle-xe)与 spring boot 一起使用,但将其用作本地部署的数据库。例如,让 spring boot 在开发配置文件中启动,并让测试容器也启动并成为用于敌人后端..

如果它被用于测试,我已经看到了一些示例,但随后它被拆除/关闭。

有什么想法吗?

更新:

所以我设法在测试容器中连线并启动它.. 设置了弹簧属性..

当 schema.sql 文件加载时,我得到一个错误 no privleges...我正在尝试创建一个新模式并向其中添加一些表..但它似乎不起作用..

“表空间'SYSTEM'没有权限”

CREATE USER PM3 IDENTIFIED by PM3

 

CREATE TABLE PM3.JOBS (

    JOB_ID NUMBER(3) NOT NULL,

    CUSTOMER_ID NUMBER(3) NOT NULL,

    DESCRIPTION VARCHAR(200),

    constraint PK_JOB_ID primary key (JOB_ID)

);

【问题讨论】:

    标签: spring-boot testcontainers oracle-xe


    【解决方案1】:

    Testcontainers 的核心维护者之一 Sergei Egorov 在 his blog 上展示了如何实现这一目标。

    它归结为在启动 Spring Boot 应用程序之前添加一个新的 Spring Boot 入口类和一个初始化程序。这样您就可以重用任何 Testcontainers 设置进行本地开发。

    【讨论】:

    • 这大致就是我想要的。然而,我确实使用类似的方法进行了管理,通过启动容器并设置数据源.. 来启动它,但我似乎无法让 spring 用 data.sql 填充测试容器数据库。我想知道是不是因为我动态设置了属性..
    • 你可以为你的问题添加一些代码提示吗?
    • 我现在已经用更多信息更新了这个问题。
    【解决方案2】:

    既然你可以manually control the lifecycle of the containers 这应该是完全可能的。如果develop 配置文件处于活动状态,只需添加一些启动和停止容器的代码。

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 2015-04-15
      • 2021-08-28
      • 2018-01-02
      • 2019-01-27
      • 2022-10-04
      • 2019-03-13
      • 2016-10-29
      • 2018-06-10
      相关资源
      最近更新 更多