Spring 启动测试容器
Spring boot test containers
是否可以使用带有 spring 引导的测试容器即 oracle-xe,但将其用作本地部署的数据库.. 例如获取 spring 引导以在开发中启动配置文件并让测试容器也启动并用于敌人后端..
我看过一些用于测试的示例,但后来被撕掉了 down/shut。
有什么想法吗?
更新:
所以我设法连接测试容器并启动它。设置了 spring 属性..
当 schema.sql 文件加载时,我得到一个没有权限的错误...我正在尝试创建一个新模式并向其中添加一些表..但它似乎不起作用..
“表空间没有权限 '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)
);
既然你可以manually control the lifecycle of the containers这应该是完全可能的。如果 develop
配置文件处于活动状态,只需添加一些启动和停止容器的代码。
Testcontainers 的核心维护者之一 Sergei Egorov 在 his blog 上展示了如何实现这一目标。
它归结为在启动 Spring 引导应用程序之前添加一个新的 Spring 引导条目 class 和一个初始化程序。这样您就可以重复使用任何 Testcontainers 设置进行本地开发。
是否可以使用带有 spring 引导的测试容器即 oracle-xe,但将其用作本地部署的数据库.. 例如获取 spring 引导以在开发中启动配置文件并让测试容器也启动并用于敌人后端..
我看过一些用于测试的示例,但后来被撕掉了 down/shut。
有什么想法吗?
更新:
所以我设法连接测试容器并启动它。设置了 spring 属性..
当 schema.sql 文件加载时,我得到一个没有权限的错误...我正在尝试创建一个新模式并向其中添加一些表..但它似乎不起作用..
“表空间没有权限 '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)
);
既然你可以manually control the lifecycle of the containers这应该是完全可能的。如果 develop
配置文件处于活动状态,只需添加一些启动和停止容器的代码。
Testcontainers 的核心维护者之一 Sergei Egorov 在 his blog 上展示了如何实现这一目标。
它归结为在启动 Spring 引导应用程序之前添加一个新的 Spring 引导条目 class 和一个初始化程序。这样您就可以重复使用任何 Testcontainers 设置进行本地开发。