Vitest 发布 4.0 版本!本文带大家剖析这些核心亮点!
本次更新聚焦浏览器测试稳定化和新工具集成。
1. 浏览器模式稳定
浏览器模式移除实验标签,现已正式稳定。通过安装单独包(如@vitest/browser-playwright)定义提供者,支持自定义选项:
import { defineConfig } from'vitest/config';
import { playwright } from'@vitest/browser-playwright';
exportdefault defineConfig({
test: {
browser: {
provider: playwright({
aunchOptions: { slowMo: 100 }
}),
instances: [{
browser: 'chromium',
launch: { slowMo: 100 }
}],
},
},
});
此变化简化了API调用,无需参考注释,提升了浏览器单元测试的可靠性。
2. 自动覆盖阈值
新增--coverage.increase选项,自动计算并更新覆盖阈值,支持分支/函数/行/语句级别:
npx vitest --coverage.increase 2 --coverage.thresholdAutoUpdate
基于当前覆盖率递增阈值,自动更新 package.json 或配置文件。
3. 新视觉UI
引入全新UI设计(--ui启用),支持拖拽分组、实时过滤和CLI/浏览器模式切换:
树状视图显示测试套件,热图突出慢测试,支持快照预览和源代码导航。
4. 测试名称模式
新增--testNamePattern过滤测试,支持正则和字符串匹配:
npx vitest --testNamePattern "my test"
集成到 CLI 和 UI 过滤器中,支持部分匹配,快速隔离特定测试,优化大型套件的运行时间。
5. 新Expect匹配器
扩展expect API,支持Zod/Valibot/ArkType模式验证:
expect(user).toEqual({ email: expect.schemaMatching(z.string().email()) });
在测试中直接验证模式,确保类型安全和数据一致性,支持所有相等匹配器。
6. 报告器更新
移除basic报告器,用default的summary: false替代;
default 在单文件时默认树状视图,新 tree 报告器始终树状显示;
verbose 现逐个打印完成测试。
reporters: process.env.CI ? 'verbose' : 'default',
提升报告可读性,适应不同环境。
Vitest 4.0 通过稳定浏览器模式、自动阈值和新UI等创新,显著提升了 Vite 生态的测试能力,适合从入门到企业级项目。
今天的分享就这些了,感谢大家的阅读,如果文章中存在错误的地方欢迎指正!