用途:该技能用于诊断 PostgreSQL 集成测试中的失败,包括包含关系错误、锁顺序违规以及同一 SHA 重跑问题,帮助定位首个失败原因,避免下游污染用例干扰判断。\n\n主要能力与使用方式:技能说明要求先阅读 docs/testing.md#integration-databases 中的隔离与污染规则。运行测试时应通过项目启动器执行单个文件,而不是直接运行 Vitest,例如 pnpm test:integration path/to/file.integration.test.ts;也支持预检模式,例如 pnpm test:integration --preflight path/to/file.integration.test.ts。环境上可使用 Docker,或提供 testing.md 中命名的两个调用方所有的数据库 URL。应检查首个失败,再查看下游被污染的用例;检查 bundle 清单诊断并使用其重建命令,不得绕过陈旧证据或回退到 tsx 进行恢复分支。若无关用例导致共享设置失败,应停止大范围运行。跨事务重试时应观察锁集合而不是后端 PID。验收时保持强制模式;仅诊断时可使用 OPENSTEER_LOCK_ORDER_MODE=record pnpm test:integration path/to/file.integration.test.ts。对于符合条件的完整未过滤尝试,可执行 pnpm integration:rerun /absolute/run-record/attempt,在原始 SHA 上诊断一次,并读取 JSON 决策;即使失败消失,退出码 1 也是有意为之。重跑不能作为合格凭证,也不能反复重跑直到变绿。SIGKILL 或主机崩溃后,应先识别打印出的运行自有容器,再执行 docker rm --force --volumes <container-id> 清理;绝不能停止调用方所有的服务器或其它运行的资源。最终需报告首个失败、命令、SHA 和清理结果。\n\n适用场景:适用于使用 PostgreSQL 的集成测试调试、锁顺序问题排查以及失败重跑分析。\n\n限制:技能资料未提供具体的项目安装步骤、依赖版本、支持平台或收费信息;部分行为依赖 testing.md 和 scripts/run-record.ts 中的约定,使用前需查阅对应文档。
debug-integration-tests
测试与质量
更新于 11-03 23:38