定期整理失败测试变化是为了建立可追溯证据链、防止问题重复发生;需通过四步操作:提取失败信息、生成复现脚本、人工归类记录到failures.md、配置codex定时归档任务。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

定期整理失败测试的变化,是为了让每次失败都留下可追溯的证据链,避免同一问题反复出现、反复排查。Codex本身不会自动归档历史失败,必须通过明确指令让它把失败现象、定位路径、临时绕过方式和验证动作固化为可复现的检查项。
第一步:让Codex捕获并记录本次失败
运行测试命令后,Codex会看到终端输出。此时不要直接让它“修复”,而是先执行归档动作:【必须在报错输出还完整显示在终端时立刻操作】。输入指令:“请把当前终端中所有失败用例的名称、错误类型、堆栈首行、触发文件和行号提取出来,按表格格式整理,不修改任何代码。”
这一步不能跳过。如果等终端刷新、日志滚动或重新运行测试,原始失败上下文就丢失了。Codex只会基于它“看到”的内容工作,不是基于你“记得”的内容。
第二步:生成可重复执行的失败复现脚本
方法一:用 pytest -k 精确复现单个失败用例
复制上一步表格中第一个失败用例名(如 test_user_login_with_expired_token),输入:“请生成一条可直接粘贴执行的 pytest 命令,只运行这个用例,并带上 --tb=short 和 -s 参数,确保能打印出关键日志。”
方法二:封装为最小 shell 脚本
输入:“请写一个名为 reproduce-fail-20261013.sh 的脚本,只包含三行:cd 到项目根目录 → 激活虚拟环境(如存在)→ 执行上一步生成的 pytest 命令。脚本不带注释,不加判断逻辑,不尝试修复。”
【脚本必须能离线执行,不依赖 Codex 当前会话状态】。很多人忽略这点,写的脚本里带 echo “正在修复…” 这类无意义输出,反而干扰后续自动化识别。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
第三步:建立失败分类与归属规则
① 打开项目根目录下的 FAILURES.md 文件(若不存在则新建);
② 在文件末尾添加一级标题:## 2026-10-13 失败汇总;
③ 将第一步提取的表格内容原样粘贴进去;
④ 在表格下方空一行,手写一行归属说明:“涉及模块:auth → 归属人:@backend-team → 首次发现:2026-10-13”;
⑤ 保存文件后,运行 git add FAILURES.md && git commit -m "chore: record today's test failures"。
这一步的关键是人工确认归属和模块。Codex可以提取信息,但无法判断“test_cache_invalidation”到底属于缓存模块还是数据库模块——它可能同时读了 redis.py 和 db.py。你必须在 commit 前做这个判断。
第四步:配置每日定时归档任务
在项目根目录下创建 .codex/daily-fail-archive.toml 文件,内容为:
command = "pytest --tb=no -q | grep 'FAILED' || true"
output_file = "FAILURES.md"
trigger = "0 9 * * 1-5"
这行 trigger 表示每周一至周五上午9点自动触发。Codex 会在该时间点运行左侧 command,把结果追加到右侧 output_file 开头的「最近失败」区块。不需要额外安装 cron 或外部调度器,Codex 自带轻量级定时能力。
注意:该配置仅对本地仓库生效,不上传远程。如需团队共享归档,需配合 Git hook 或 CI 流水线导出 FAILURES.md。










