展开本页目录
开始前准备什么
- 原生 /batch 会划分 5–30 个独立单元;需 Git worktree 或对应 WorktreeCreate 支持。
- 当前 Vitest 文档要求 Node >=22.12、Vite >=6.4;按练习锁文件固定版本。
- 原生流程可能含外部发布动作;教程须明确本地边界,若当前版本无法尊重不推送要求则停在计划阶段,不自动建第三方 PR。
- 固定六套原测试与两个框架版本
- 从原生 batch 生成六单元计划
- 检查 worktree 与外部动作边界
- 逐组迁移显式导入和断言
- 单独处理 mockReset 的语义差异
- 运行真正的新框架六套测试
- 审 diff 再合并本地结果
原创输入、提示词、原生配置、参考源码、实际结果和验收说明;不含模型账号或运行缓存。
按独立目录运行,原生代理会话需由自己另行执行。
1. 固定六套原测试与两个框架版本
打开 before 的六个目录,package.json 锁定 Jest 30.2.0 与 Vitest 4.0.18。先 npm ci,再 npm run test:before,保留六套基线;本题锁定的是练习版本,不把它称为当前最新版。
2. 从原生 batch 生成六单元计划
在独立 Git 练习仓库中输入 /batch,交代每个 after/NN-* 目录一名负责人,包配置只由主会话维护。先审计划中的六单元文件责任范围;若当前 /batch 不能在发布前停下,只保留计划并改为本地执行。
3. 检查 worktree 与外部动作边界
确认六个隔离工作单元基于同一提交,不能多个代理改一个配置。提示词明确不 push、不建 PR、不改原测试真值;本教材没有执行 /batch 或创建远端任务,也不把参考实现当代理变更。
4. 逐组迁移显式导入和断言
将 @jest/globals 换成 vitest 的 test/expect/vi,保持 async test 的 await。不要全文替换 jest 字符串后就结束:mock 函数、调用断言和异常消息必须保留原验收意图。
5. 单独处理 mockReset 的语义差异
第五组源测试中 Jest mockReset 后返回 undefined;本题 Vitest 参考恢复构造时实现,因此返回 7。把这项有意语义差异写进 migration-map.json,不能让模型偷偷改断言掩盖行为变化。
本地练习命令
npm ci
npm run test:before
npm run test:after6. 运行真正的新框架六套测试
npm run test:after 启动真实 Vitest,不用自制 assert 模拟测试框架。先在各隔离目录检查,再集成运行六组;包内 execution.txt 保存本站在临时目录实际跑过的 Jest 和 Vitest 真实输出,本机路径已替换为 <exercise>。
7. 审 diff 再合并本地结果
比较 before/after 的断言映射、异步等待和 mock 行为;检查没有删除失败断言。最终交付六组通过记录及唯一明确的 reset 差异,远端 PR 与发布不属于本题验收。
怎样确认已经完成
- Jest/Vitest 六套测试原始执行输出应能按 README 在独立目录重现。
- 目标代理真实结果须另存;人工参考、原生会话和官方示例分别识别。
常见问题
六组 Jest 测试能让 Claude 并行迁移吗?
确认六个隔离工作单元基于同一提交,不能多个代理改一个配置。提示词明确不 push、不建 PR、不改原测试真值;本教材没有执行 /batch 或创建远端任务,也不把参考实现当代理变更。
Jest 改 Vitest 怎么避免只替换名字却把 mock 改坏?
npm run test:after 启动真实 Vitest,不用自制 assert 模拟测试框架。先在各隔离目录检查,再集成运行六组;包内 execution.txt 保存本站在临时目录实际跑过的 Jest 和 Vitest 原始输出。
本题哪些结果已经实际运行?
已运行的是Jest/Vitest 六套测试原始执行输出。原生功能操作按官方文档编排,目标代理未调用;英文检索可用“Claude Code batch Jest to Vitest parallel migration”定位对应术语,但这不是搜索量或热榜声明。




