codex 并行测试需满足目标独立、文件重叠少、结果可拆分三条件;否则跳过。通过 worktree、cloud 或 docker 隔离环境,统一设置独立 coverage 目录、唯一 reporter 路径,并禁用 cache/watch;最后合并报告与覆盖率。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让 Codex 同时运行多个测试任务,但又不能让它们抢占同一套测试环境、覆盖彼此的输出、或因共享状态导致结果失真。
确认测试任务是否适合并行
先检查当前要并行的测试是否满足三个硬条件:【目标独立】(比如单元测试 vs E2E 测试)、【文件重叠少】(不共用同一份 mock 数据目录或 config.ts)、【结果可拆分】(一个失败不影响另一个报告生成)。如果其中任一条件不成立,直接跳过后续步骤——强行并行只会得到不可信的 test summary。
例如:两个子任务都调用 npm run test:unit -- --testPathPattern=src/api,就属于高风险重叠;而一个跑 src/api,另一个跑 src/components,则天然隔离。
为每个测试任务分配独立执行上下文
方法一:用 Worktree 隔离环境
在 Codex 中输入:
请使用 Worktree 模式启动子代理,基于当前 commit 创建新 worktree,路径为 ./worktree-test-api;进入该目录后仅运行 npm run test:api;禁止访问或修改 src/pages、src/components 目录。
方法二:用 Cloud 模式远程隔离
输入:
请使用 Cloud 模式启动子代理,在云端环境 checkout 当前分支 → 安装依赖 → 运行 npm run test:component -- --maxWorkers=1;测试完成后立即销毁环境,不保留任何缓存。
方法三:本地容器化隔离(需项目已配 Dockerfile)
输入:
请使用 docker run -v $(pwd):/app -w /app node:18-alpine sh -c "npm ci && npm run test:util";确保容器内无全局状态残留,每次启动都是干净镜像。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
统一管控测试资源与输出路径
第一步:禁止所有子代理写入默认 coverage 目录
在每个子代理指令开头强制添加:设置 COVERAGE_DIR=./coverage-taskname,覆盖 jest.config.js 中的 coverageDirectory 配置。
第二步:为每个子代理绑定唯一 reporter 输出路径
例如子代理 1 执行:
jest --json --outputFile=./test-report-api.json --testPathPattern=src/api
子代理 2 执行:
jest --json --outputFile=./test-report-ui.json --testPathPattern=src/components
第三步:禁用并发写入 shared state 文件
【必须关闭 Jest 的 cache 和 watch 模式】,所有并行测试命令必须带 --no-cache --no-watch。否则多个 Jest 实例会争抢 .jest/cache 下的 lock 文件,导致随机中断。
等待全部完成并合并结果
① 主 Agent 发出并行指令:
请并行启动以下三个子代理,并等待全部返回成功状态:
- 子代理 A:运行 API 层单元测试,输出 JSON 报告至 ./test-report-api.json
- 子代理 B:运行组件层快照测试,输出 JSON 报告至 ./test-report-component.json
- 子代理 C:运行工具函数覆盖率分析,输出 lcov 至 ./coverage-util/lcov.info
② 主 Agent 收集后执行:
npx jest-merge-reporters --reporters ./test-report-api.json ./test-report-component.json → ./test-summary.json
③ 主 Agent 调用覆盖率合并工具:
genhtml ./coverage-util/lcov.info ./coverage-api/lcov.info -o ./coverage-merged










