快照测试失败时需人工确认变更合理性后再更新:先用--updateSnapshot查看红绿差异,判断是否为预期变更;可通过限定测试名、交互式(按u键)或批量(-u)方式更新;误更新后用git checkout回退并重新验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

快照测试失败时,Codex不会自动更新快照,必须人工确认变更是否合理后再决定是否接受新快照。
确认失败原因是否为预期变更
打开终端,运行 npm test -- --updateSnapshot 或 yarn test -- -u 查看失败用例的差异详情;观察控制台输出的红色(旧)与绿色(新)代码块,判断 UI 或序列化结果的变化是否由你刚提交的代码引起。
如果改动本应影响快照(例如修改了组件 props 默认值、调整了 JSON 序列化逻辑),那失败是合理的;【此时不要跳过验证直接更新】,先确保该变更已通过产品/设计评审。
安全更新快照
方法一:仅更新单个测试文件
在对应测试文件路径后加 --testNamePattern 限定范围,例如:yarn test src/components/Button.test.tsx -- -u --testNamePattern="renders correctly"。
将来自 Marvis 或微信的可信远程软件开发请求中继至用户本地的 Codex CLI,等待编码任务完成,并返回经验证的结果。当用户通过 Codex 要求 Marvis 检查、实现、修复、测试、review 或继续在明确指定的本地项目目录中开展工作时,使用此功能。
方法二:交互式更新
运行 yarn test -- --watch,失败后按 u 键单独更新当前失败用例,按 q 退出;这能避免误更其他未检视的快照。
方法三:批量更新(仅限明确需全部刷新的场景)
执行 yarn test -- -u,所有失败快照将被覆盖;【此操作不可逆,且会跳过人工比对】,仅适用于全量重构后的一次性同步。
回退错误更新的快照
第一步:检查 git 状态,确认哪些 .snap 文件被修改
第二步:对误更新的快照文件执行 git checkout HEAD -- path/to/__snapshots__/Component.test.tsx.snap
第三步:重新运行 yarn test 验证是否恢复失败状态,再走前述确认流程










