- 新增 apps/server/test/support/{pg,engine}.ts:测试库地址、可用性探测、schema 咨询锁、
建 schema + 加锁迁移 + 删除、可选去重的假引擎;6 份 harness 改用它(acquisition-organize 与
file-manager 原先迁移不加锁,并行下有冲突隐患,一并修正)
- sse-pg 起子进程,并行下子进程启动超时,归入 serial
- 修正 b61335e 挪动 / 改名测试后遗留的 import 排序与格式(当时 lint 检查经管道被吞掉退出码)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
72 lines
2.4 KiB
TypeScript
72 lines
2.4 KiB
TypeScript
import { defineConfig } from "vitest/config";
|
||
|
||
// 三组测试,按 groupOrder 依次跑:
|
||
// unit —— 纯内存、无 PG,文件并行;
|
||
// pg —— 真实 PG、假引擎(每文件独立 schema),文件并行;
|
||
// serial —— 起真实引擎 / worker / 后台循环 / 子进程的集成与 e2e,文件级串行。并发跑时 worker、轮询、迁移
|
||
// 互相抢 CPU 与连接,会把"入库→状态推进"这类时序拉长到超时,串行让每个文件拿到稳定的时序预算。
|
||
// 新测试缺省进 pg;起真实 worker / 引擎 / 子进程的加进 SERIAL;确认不碰 PG 的加进 UNIT。
|
||
// 并行文件数受开发库连接数约束(max_connections 100,每个 harness 连接池 5–10):MAX_WORKERS 别随手调大。
|
||
const UNIT = [
|
||
"test/api-registry.test.ts",
|
||
"test/organize-in-place-verify.test.ts",
|
||
"test/file-manager/preview-parse.test.ts",
|
||
"test/auth.test.ts",
|
||
"test/health.test.ts",
|
||
"test/sources-identity/identity-differential.test.ts",
|
||
"test/sources-identity/enrich-sources.test.ts",
|
||
"test/invoke-limits.test.ts",
|
||
"test/logger.test.ts",
|
||
"test/mapping-compat.test.ts",
|
||
"test/modules.test.ts",
|
||
"test/sse.test.ts",
|
||
"test/static.test.ts",
|
||
];
|
||
|
||
const SERIAL = [
|
||
"test/e2e/**/*.test.ts",
|
||
"test/auth-settings/admin-api.test.ts",
|
||
"test/auth-settings/engine-retry.test.ts",
|
||
"test/auth-settings/sse-pg.test.ts",
|
||
"test/system/**/*.test.ts",
|
||
"test/search/search.test.ts",
|
||
"test/search/two-stage-search.test.ts",
|
||
"test/worker-lanes.test.ts",
|
||
"test/preflight.test.ts",
|
||
"test/bootstrap.test.ts",
|
||
];
|
||
|
||
const MAX_WORKERS = 6;
|
||
|
||
export default defineConfig({
|
||
test: {
|
||
// 建/删 schema 在一把咨询锁上排队(withSchemaLock),迁移 + 引擎 schema 在负载下可能超过缺省 10s
|
||
hookTimeout: 120_000,
|
||
teardownTimeout: 60_000,
|
||
maxWorkers: MAX_WORKERS,
|
||
projects: [
|
||
{ extends: true, test: { name: "unit", include: UNIT } },
|
||
{
|
||
extends: true,
|
||
test: {
|
||
name: "pg",
|
||
include: ["test/**/*.test.ts"],
|
||
exclude: [...UNIT, ...SERIAL],
|
||
// 迁移类用例在用例体里建 schema + 迁移,并行时排队等同一把锁,缺省 5s 不够
|
||
testTimeout: 60_000,
|
||
sequence: { groupOrder: 1 },
|
||
},
|
||
},
|
||
{
|
||
extends: true,
|
||
test: {
|
||
name: "serial",
|
||
include: SERIAL,
|
||
fileParallelism: false,
|
||
sequence: { groupOrder: 2 },
|
||
},
|
||
},
|
||
],
|
||
},
|
||
});
|