写点什么

Vitest 团队发布 4.0 版本,提供稳定的浏览器模式与视觉回归测试功能

作者:Daniel Curtis

  • 2025-12-16
    北京
  • 本文字数:1461 字

    阅读完需:约 5 分钟

大小:741.49K时长:04:13
Vitest团队发布4.0版本,提供稳定的浏览器模式与视觉回归测试功能

Vitest是 Vite 原生的测试框架,最近发布了 4.0 版本,带来了基于浏览器的测试、视觉回归测试能力以及开发者体验方面的多项改进。

 

Vitest 4.0 引入了若干重要新特性,包括浏览器模式(Browser Mode)正式进入稳定状态、内置视觉回归测试支持、Playwright Traces 集成,以及增强的调试能力。此次发布也包含一些破坏性变更,开发者在升级前需仔细查阅迁移指南。

 

其中一项重大更新是浏览器模式的稳定化。该功能此前一直处于实验阶段,现在允许开发者在真实浏览器中运行测试,而非使用jsdomhappy-dom等模拟环境,从而能够获得更准确的测试结果。要使用浏览器模式,开发者现在需要单独安装对应的提供商的包,例如@vitest/browser-playwright@vitest/browser-webdriverio@vitest/browser-preview。这一调整简化了自定义选项的配置,并移除了对 TypeScript 引用指令(reference directives)的需求。

 

上下文(context)的导入路径也已变更,原先从@vitest/browser/context导入,现在应直接从vitest/browser导入。为保持兼容性,旧路径在下一个主版本之前仍可继续使用。

 

Vitest 4.0 通过toMatchScreenshot断言实现视觉回归测试。框架会捕获 UI 组件或页面的截图,并与基准图像进行比对,以检测意外的视觉变更。同时新增了toBeInViewport匹配器,利用 IntersectionObserver API 判断某个元素是否当前处于视口内。

 

此外,Vitest 4.0 支持为浏览器测试生成 Playwright Traces。开发者可在 test.browser 配置中设置 trace 选项,或通过browser.trace标志启用追踪,可选值包括 on、off、on-first-retry、on-all-retries 和 retain-on-failure。生成的 traces 会作为注解出现在报告器中,并可通过 Playwright Trace Viewer 查看。

 

VS Code 扩展现在在运行浏览器测试时提供“Debug Test”按钮,显著改善调试体验。开发者还可结合 playwright 和 webdriverio 提供者,在启动 Vitest 时添加 inspect 标志,手动连接 DevTools 进行调试。

 

报告器方面也有更新:basic reporter 已被移除,可用summary: false的默认报告器替代;默认报告器现仅在运行单个测试文件时以树形格式输出测试结果,而新增的树报告器则适用于希望始终以树形结构查看测试的用户;详情报告器(verbose reporter)现在无论是否在 CI 环境中,都会在测试完成后逐条打印结果(此前仅在 CI 中如此)。

 

社区对 Vitest 4.0 反响很积极。有 Reddit 用户指出,原生集成视觉回归测试意味着无需再引入 Percy 或 Chromatic 等外部依赖。该开发者还称赞 Vitest 的开发者体验持续优于 Jest,如今更成为一个功能完备的测试解决方案,许多过去需借助独立工具实现的功能现已内置。

 

不过,部分开发者在升级过程中遇到了问题。一则近期GitHub issue报告称,当 Vitest 4.x 与 Vite 7.1.0 或更早版本搭配使用时会出现 TypeScript 错误,尽管 Vitest 4.x 声明兼容 vite ^6.0.0 或^7.0.0。错误表现为 ModuleRunnerOptions 缺少createImportMeta属性,且仅在 vitest.config.ts 被纳入 TypeScript 上下文时触发。该问题已被标记为影响特定使用场景的轻微 bug。

 

由于 Vitest 4.0 包含破坏性变更,可能影响现有项目,官方已发布详细的迁移指南协助开发者升级。完整变更列表可在 GitHub 上的Vitest 4 Changelog 中查阅。

 

据 VoidZero 博客透露,过去一年 Vitest 的周下载量已从 700 万增长至 1700 万。

 

Vitest 是一个开源测试框架,专为 Vite 项目打造,但也可独立使用。它提供与 Jest 兼容的 API(如 expect、快照测试和覆盖率功能),并通过 esbuild 为 ESM、TypeScript 和 JSX 提供一流支持。

 

原文链接:

Vitest Team Releases Version 4.0 with Stable Browser Mode and Visual Regression Testing

2025-12-16 11:151

评论

发布
暂无评论

架构师训练营第八周作业2

韩儿

搞定MySQL安装难安装贵问题

MySQL从删库到跑路

MySQL 安装 Windows 10

测开入门篇《环境管理、编码规范、项目结构》

清菡软件测试

测试开发

北海游记:日出、日落与海鲜

北风

摄影 游记 大海

Prometheus TSDB(Part 1):头块

Grafana 爱好者

Prometheus tsdb

谈谈 MySQL 锁

郭儿的跋涉

MySQL 数据库 锁机制

架构师训练营第十二周课后作业

Gosling

极客大学架构师训练营

Java并发编程:并发中死锁的形成条件及处理

李尚智

Java并发

第三周 学习总结 代码重构

简简单单

第三周作业

Geek_b9053c

volcano使用必知: 从vcjob创建到pod运行

托内多

Volcano

架构师训练营第一期第十二周总结

Leo乐

极客大学架构师训练营

大数据1第十二周作业「架构师训练营第 1 期」

天天向善

架构师训练营 1 期 - 第十二周 - 数据应用1

三板斧

极客大学架构师训练营

别费心了,K8s根本甩不掉Docker

亨利笔记

Docker 云原生 k8s Harbor image

架构师训练营第12周课后练习

脸不大

大数据

架构师训练营第十二周作业

月殇

极客大学架构师训练营

第十二周作业

alpha

极客大学架构师训练营

怒肝一夜,写了这篇mybatis源码阅读篇

田维常

mybatis

八、性能二

Geek_28b526

LeetCode题解:433. 最小基因变化,DFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

第三周 代码重构 作业 「架构师训练营 3 期」

胡云飞

极客大学架构师训练营

12周作业

橘子皮嚼着不脆

架构师训练营 -week12-作业

大刘

极客大学架构师训练营

第三周作业

简简单单

架构入门感悟之八

笑春风

第十二周 数据应用1 总结

三板斧

极客大学架构师训练营

架构师训练营 - 第十二周 - 作业一

行者

架构师训练营第十二周学习总结

Gosling

极客大学架构师训练营

第十二周总结

alpha

极客大学架构师训练营

架构师训练营 -week12-总结

大刘

极客大学架构师训练营

Vitest团队发布4.0版本,提供稳定的浏览器模式与视觉回归测试功能_架构/框架_InfoQ精选文章