Vitest 5 发布了。这次升级不是换个版本号那么简单,环境要求与默认行为都变了,照着旧配置直接升大概率会红一片。
先核对环境
要求 Vite 6.4、Node.js 22.12 或更新版本。本地开发环境和 CI 镜像两边都要看,CI 镜像常年不更新,是这类问题的重灾区。
默认值变严是重点
严格默认值的目的是让测试少漏错,代价是以前能过的测试现在可能失败。典型三类:
一是 mock 清理策略变了。项目里如果显式写了 clearMocks 为 false,那组依赖「上一次调用记录」的测试会直接失效。
二是异步断言更严格。漏掉 await、断言没返回 Promise 的写法,以前可能侥幸通过,现在会被抓出来。
三是跨测试的 mock 调用记录不再默默累积,依赖这个行为的测试要重写。
新增的三个入口
vitest doctor 是新的诊断命令,适合放进升级排查流程。Browser Mode 加了 Trace 查看能力,用浏览器模式跑测试的团队值得试。vi.when 是新 API,但公开资料没给出签名与完整语义,别只看名字就写迁移代码,先看命令帮助。
推荐的升级顺序
第一步,核对 Node、Vite 与 Vitest 的版本兼容性。第二步,检查是否覆盖了 clearMocks。第三步,修异步断言。第四步,排查跨测试 mock 依赖。第五步,正确性恢复之后再测耗时。
一句话
性能是升级的副产品,正确性才是目标。别把所有新功能塞进同一个迁移提交,出了问题你会找不到是哪一处改坏的。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。