From 8ecf43603f5f1dfc6836b53ee5c5810b67b03c48 Mon Sep 17 00:00:00 2001 From: Liu Rui Date: Fri, 14 Aug 2026 09:57:46 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E5=A4=8D=E7=94=A8=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E9=9B=86=E6=88=90=E6=B5=8B=E8=AF=95=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=AE=B9=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../audit/RuntimeAuditRecordRepositoryIT.java | 9 ++------- .../spring/platform/code/CodeRepositoryIT.java | 9 ++------- .../code/DynamicCodeCoordinatorRepositoryIT.java | 10 ++-------- .../platform/metadata/FieldSpecRepositoryIT.java | 9 ++------- .../runtime/PlatformDynamicRuntimeRefresherIT.java | 9 ++------- .../support/PlatformPostgresIntegrationTest.java | 14 ++++++++++++++ .../platform/ui/UserPreferenceRepositoryIT.java | 9 ++------- 7 files changed, 26 insertions(+), 43 deletions(-) create mode 100644 muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/support/PlatformPostgresIntegrationTest.java diff --git a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/audit/RuntimeAuditRecordRepositoryIT.java b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/audit/RuntimeAuditRecordRepositoryIT.java index be4d2b09e..abc630b79 100644 --- a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/audit/RuntimeAuditRecordRepositoryIT.java +++ b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/audit/RuntimeAuditRecordRepositoryIT.java @@ -7,6 +7,7 @@ import net.ximatai.muyun.spring.ability.event.RuntimeEventType; import net.ximatai.muyun.spring.ability.event.RuntimeMutationSource; import net.ximatai.muyun.spring.common.exception.PlatformException; +import net.ximatai.muyun.spring.platform.support.PlatformPostgresIntegrationTest; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; @@ -18,9 +19,6 @@ import org.springframework.test.context.DynamicPropertySource; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.support.TransactionTemplate; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; import javax.sql.DataSource; import java.time.Instant; @@ -29,11 +27,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -@Testcontainers(disabledWithoutDocker = true) @SpringBootTest(classes = RuntimeAuditRecordRepositoryIT.TestApplication.class) -class RuntimeAuditRecordRepositoryIT { - @Container - static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:16-alpine"); +class RuntimeAuditRecordRepositoryIT extends PlatformPostgresIntegrationTest { @DynamicPropertySource static void databaseProperties(DynamicPropertyRegistry registry) { diff --git a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/code/CodeRepositoryIT.java b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/code/CodeRepositoryIT.java index 3cbe470fa..14a9a2b79 100644 --- a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/code/CodeRepositoryIT.java +++ b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/code/CodeRepositoryIT.java @@ -5,6 +5,7 @@ import net.ximatai.muyun.database.spring.boot.JdbiConfigurer; import net.ximatai.muyun.database.spring.boot.sql.annotation.EnableMuYunRepositories; import net.ximatai.muyun.spring.common.tenant.TenantContext; +import net.ximatai.muyun.spring.platform.support.PlatformPostgresIntegrationTest; import org.jdbi.v3.core.Jdbi; import org.jdbi.v3.core.argument.AbstractArgumentFactory; import org.jdbi.v3.core.argument.Argument; @@ -20,9 +21,6 @@ import org.springframework.test.context.DynamicPropertySource; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.support.TransactionTemplate; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; import javax.sql.DataSource; import java.math.BigInteger; @@ -40,11 +38,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -@Testcontainers(disabledWithoutDocker = true) @SpringBootTest(classes = CodeRepositoryIT.TestApplication.class) -class CodeRepositoryIT { - @Container - static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:16-alpine"); +class CodeRepositoryIT extends PlatformPostgresIntegrationTest { @DynamicPropertySource static void databaseProperties(DynamicPropertyRegistry registry) { diff --git a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/code/DynamicCodeCoordinatorRepositoryIT.java b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/code/DynamicCodeCoordinatorRepositoryIT.java index 04fd22196..a65b6b4c2 100644 --- a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/code/DynamicCodeCoordinatorRepositoryIT.java +++ b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/code/DynamicCodeCoordinatorRepositoryIT.java @@ -14,6 +14,7 @@ import net.ximatai.muyun.spring.common.platform.EntityCapability; import net.ximatai.muyun.spring.common.platform.PlatformAction; import net.ximatai.muyun.spring.common.tenant.TenantContext; +import net.ximatai.muyun.spring.platform.support.PlatformPostgresIntegrationTest; import net.ximatai.muyun.spring.dynamic.metadata.EntityDefinition; import net.ximatai.muyun.spring.dynamic.metadata.EntityRelationDefinition; import net.ximatai.muyun.spring.dynamic.metadata.FieldDefinition; @@ -41,9 +42,6 @@ import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.support.TransactionTemplate; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; import javax.sql.DataSource; import java.math.BigInteger; @@ -67,14 +65,10 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.Mockito.mock; -@Testcontainers(disabledWithoutDocker = true) @SpringBootTest(classes = DynamicCodeCoordinatorRepositoryIT.TestApplication.class) -class DynamicCodeCoordinatorRepositoryIT { +class DynamicCodeCoordinatorRepositoryIT extends PlatformPostgresIntegrationTest { private static final String TENANT_ID = "tenant-code"; - @Container - static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:16-alpine"); - @DynamicPropertySource static void databaseProperties(DynamicPropertyRegistry registry) { registry.add("muyun.database.default-schema", () -> "public"); diff --git a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/metadata/FieldSpecRepositoryIT.java b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/metadata/FieldSpecRepositoryIT.java index 03ffa9d27..85ab26407 100644 --- a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/metadata/FieldSpecRepositoryIT.java +++ b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/metadata/FieldSpecRepositoryIT.java @@ -4,6 +4,7 @@ import net.ximatai.muyun.database.core.orm.Criteria; import net.ximatai.muyun.spring.dynamic.metadata.DynamicQueryOperator; import net.ximatai.muyun.spring.dynamic.metadata.FieldType; +import net.ximatai.muyun.spring.platform.support.PlatformPostgresIntegrationTest; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; @@ -13,9 +14,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; import javax.sql.DataSource; import java.util.List; @@ -24,11 +22,8 @@ import static org.assertj.core.api.Assertions.assertThat; -@Testcontainers(disabledWithoutDocker = true) @SpringBootTest(classes = FieldSpecRepositoryIT.TestApplication.class) -class FieldSpecRepositoryIT { - @Container - static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:16-alpine"); +class FieldSpecRepositoryIT extends PlatformPostgresIntegrationTest { @DynamicPropertySource static void databaseProperties(DynamicPropertyRegistry registry) { diff --git a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/runtime/PlatformDynamicRuntimeRefresherIT.java b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/runtime/PlatformDynamicRuntimeRefresherIT.java index 41385a9ba..2e34a1e2c 100644 --- a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/runtime/PlatformDynamicRuntimeRefresherIT.java +++ b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/runtime/PlatformDynamicRuntimeRefresherIT.java @@ -57,6 +57,7 @@ import net.ximatai.muyun.spring.platform.module.PlatformModuleActionService; import net.ximatai.muyun.spring.platform.module.PlatformModuleService; import net.ximatai.muyun.spring.platform.support.TestMemoryDao; +import net.ximatai.muyun.spring.platform.support.PlatformPostgresIntegrationTest; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; @@ -66,9 +67,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; import javax.sql.DataSource; @@ -77,11 +75,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -@Testcontainers(disabledWithoutDocker = true) @SpringBootTest(classes = PlatformDynamicRuntimeRefresherIT.TestApplication.class) -class PlatformDynamicRuntimeRefresherIT { - @Container - static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:16-alpine"); +class PlatformDynamicRuntimeRefresherIT extends PlatformPostgresIntegrationTest { @DynamicPropertySource static void databaseProperties(DynamicPropertyRegistry registry) { diff --git a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/support/PlatformPostgresIntegrationTest.java b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/support/PlatformPostgresIntegrationTest.java new file mode 100644 index 000000000..d913069cb --- /dev/null +++ b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/support/PlatformPostgresIntegrationTest.java @@ -0,0 +1,14 @@ +package net.ximatai.muyun.spring.platform.support; + +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +/** + * 仅复用 platform Repository IT 的 PostgreSQL 进程;各测试仍维护独立 Spring 上下文和数据契约。 + */ +@Testcontainers(disabledWithoutDocker = true) +public abstract class PlatformPostgresIntegrationTest { + @Container + protected static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:16-alpine"); +} diff --git a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/ui/UserPreferenceRepositoryIT.java b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/ui/UserPreferenceRepositoryIT.java index 17e0cbf6c..6aec4e73d 100644 --- a/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/ui/UserPreferenceRepositoryIT.java +++ b/muyun-platform/src/test/java/net/ximatai/muyun/spring/platform/ui/UserPreferenceRepositoryIT.java @@ -5,6 +5,7 @@ import net.ximatai.muyun.spring.common.identity.CurrentUser; import net.ximatai.muyun.spring.common.identity.CurrentUserContext; import net.ximatai.muyun.spring.common.tenant.TenantContext; +import net.ximatai.muyun.spring.platform.support.PlatformPostgresIntegrationTest; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; @@ -14,9 +15,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; import javax.sql.DataSource; import java.util.List; @@ -28,11 +26,8 @@ import static org.assertj.core.api.Assertions.assertThat; -@Testcontainers(disabledWithoutDocker = true) @SpringBootTest(classes = UserPreferenceRepositoryIT.TestApplication.class) -class UserPreferenceRepositoryIT { - @Container - static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:16-alpine"); +class UserPreferenceRepositoryIT extends PlatformPostgresIntegrationTest { @DynamicPropertySource static void databaseProperties(DynamicPropertyRegistry registry) {