test(integration): JDBC 集成测试 Testcontainers 兜底 + 全结构回环矩阵 (ACM2-29 P3-A)

- PgTestSupport 三级解析:MSGX_PG_* 显式环境变量 → Testcontainers 自动起
  postgres:17-alpine 隔离容器(JVM 单例复用,docker 不可用才跳过)→ assumeTrue
  绝不误报通过;解决了「本机端口被占/无库则集成测试静默跳过」的验收假绿问题
- loadCollections 只输出非空属性(缺失键语义),write→read 线格式一致
- 新增 readAfterWrite 矩阵用例:16 类结构(多行/重复资源号/非连续源序号/异常
  前缀列/文本旁列)persist → findNextStateByFlid 深度等值 + wire(nextState) ==
  wire(readAfterWrite) 双断言(评审 F5 持久化侧+线格式侧闭环)

验证:MSGX_PG_PORT=5433 外接库 108 用例全绿;无环境变量 Testcontainers
自动容器路径 18/18 全绿
This commit is contained in:
windyboy
2026-09-08 16:00:26 +08:00
parent 06a1081bdd
commit 35c91c67b9
4 changed files with 113 additions and 18 deletions
+2
View File
@@ -58,6 +58,8 @@ dependencies {
testRuntimeOnly(libs.h2) // U03:配置绑定回归测试的测试库(内存 datasource,冒烟用)
testImplementation("io.micronaut.test:micronaut-test-junit5")
testImplementation("org.jetbrains.kotlin:kotlin-test")
// P3-AACM2-29):无外部 PG 时 JDBC 集成测试自动起隔离容器;有 MSGX_PG_* 环境变量时不启用
testImplementation("org.testcontainers:postgresql:1.20.4")
}
application {