——罗曼·罗兰 我们已经知道vitest是一个很好用的单元测试框架,我们今天聊一下如何在github action集成vitest 首先我们创建项目 Last login: Mon Sep 9 16: :simple-vitest achao$ npm install -D vitest added 43 packages in 30s 12 packages are looking for funding achao$ npm fund simple-vitest ├─┬ https://opencollective.com/vitest │ │ └── @vitest/ui@2.1.1, @vitest /utils@2.1.1, @vitest/pretty-format@2.1.1, vitest@2.1.1, @vitest/mocker@2.1.1, @vitest/runner@2.1.1, @vitest/snapshot@2.1.1, @vitest/spy@2.1.1, vite-node@2.1.1, @vitest/expect@2.1.1 │ └── https://github.com
vitest最开始注意到 vitest 是在 evan you 的分享里面。 vitest 的特性如下:与 Vite 的配置、转换器、解析器和插件通用,免去了额外对 jest 的配置对 TypeScript / JSX 支持开箱即用的,像写组件一样写测试多线程通过 tinypool 开发环境vitest 中开发环境的执行命令vitest --config site/vite.config.js 单测开发的过程中,需要过滤对应的测试文件,则只需要加上对应的文件路径即可,具体如下:#执行 button组件的单测vitest --config site/vite.config.js button#执行button的index.test.jsx测试文件vitest --config site 而 vitest 的 log 则非常清爽。源码传送门, 欢迎加入 tdesign 共建
前言 Vitest 发布 4.0 版本!本文带大家剖析这些核心亮点! 正文 本次更新聚焦浏览器测试稳定化和新工具集成。 1. 浏览器模式稳定 浏览器模式移除实验标签,现已正式稳定。 通过安装单独包(如@vitest/browser-playwright)定义提供者,支持自定义选项: import { defineConfig } from'vitest/config'; import { playwright } from'@vitest/browser-playwright'; exportdefault defineConfig({ test: { browser 测试名称模式 新增--testNamePattern过滤测试,支持正则和字符串匹配: npx vitest --testNamePattern "my test" 集成到 CLI 和 UI 过滤器中, 最后 Vitest 4.0 通过稳定浏览器模式、自动阈值和新UI等创新,显著提升了 Vite 生态的测试能力,适合从入门到企业级项目。
什么是Vitest? 自从 尤大 的构建工具Vite获得了巨大的人气,现在有了一个由它驱动的极快的单元测试框架。Vitest。 因此,Vitest 的速度也非常快。 如何使用 Vitest 来测试组件 安装 Vitest 在项目中使用 Vitest 需要 Vite >=v2.7.10 和 Node >=v14 才能工作。 可以使用 npm、yarn 或 pnpm 来安装 Vitest,根据自己的喜好,在终端运行以下命令: NPM npm install -D vitest YARN yarn add -D vitest PNPM pnpm add -D vitest 图片 Vitest 配置 安装完 Vitest 后,需要将其添加到 vite.config.js 文件中: vite.config.js import Vitest 还可以很容易地将现有的测试从 Jest 迁移到Vitest,而不需要进行额外的配置。
Vitest Vitest 是由 Vite 驱动的下一代测试框架。 它直接在浏览器中运行 Vitest,它几乎与本地设置相同,但不需要在你的计算机上安装任何东西。 " } } 最后,运行 npm run test Vitest UI Vitest 由 Vite 提供能力,在运行测试时有一个开发服务器。 这允许 Vitest 提供一个漂亮的 UI 界面来查看并与测试交互。 npm i -D @vitest/ui 启动测试的 UI 界面: vitest --ui 可以访问 Vitest UI 界面,通过 http://localhost:51204/__vitest__
111 篇原创 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly[1] 本期周刊视频版已在 B 站【前端食堂】同步发送,想看视频的堂友可以先去看视频 本期摘要 Vitest 技术资讯 Vitest v0.10.0[2] Vitest 发布了 v0.10.0,主要更新如下: 声明测试的回调函数方式弃用,推荐使用 Promise 或者 async/await beforeAll 软件等内容的精华资讯邮件列表 参考资料 [1] 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly: https://github.com/Geekhyt/weekly [2] Vitest v0.10.0: https://github.com/vitest-dev/vitest/releases/tag/v0.10.0 [3] Jest 28: https://jestjs.io/blog
Vitest 的视觉回归测试 Vitest 作为测试框架,在本次更新中新增了以下功能: 视觉回归测试:在 beta v4.0.0-beta.4 中引入了 Visual Regression Testing 下载量里程碑:@vitest/browser 包的周 NPM 下载量突破 100 万,显示了 Vitest 在测试领域的广泛采用。 开发者可以通过以下命令尝试 Vitest 的 beta 版本: npm install vitest@beta 最后 VoidZero 的 2025 年 7 月更新为 JavaScript 开发者带来了丰富的工具升级和未来展望
TypeScript + Vite + Vue3 + Pinia + Vue Router 工程化:ESLint/Prettier、Husky/lint-staged、环境变量、按需引入与自动导入 质量与性能:Vitest unplugin-auto-import unplugin-vue-components @element-plus/icons-vue pnpm i element-plus pnpm i -D vitest @vitest/coverage-v8 jsdom 目录建议: my-app/ src/ assets/ components/ pages/ Home.vue scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview", "test": "vitest ) vitest.config.ts(可选): import { defineConfig } from 'vitest/config' import vue from '@vitejs/plugin-vue
& npm run test:unit && npm run test:e2e && npm run test:ssr && npm run test:sfc", "test:unit": "vitest run test/unit", "test:ssr": "npm run build:ssr && vitest run server-renderer", "test:sfc": " vitest run compiler-sfc", "test:e2e": "npm run build -- full-prod,server-renderer-basic && vitest todomvc-app-css": "^2.4.2", "ts-node": "^10.8.1", "tslib": "^2.4.0", "typescript": "^4.8.4", "vitest
这也是近些年来逐步推出了 Vite、Vitest、Rolldown 和 Oxc 等重量级开源项目的目的! 一图胜千言 Vitest Vitest 是针对测试场景打造的工具,灵感来自 Jest,但在性能和集成体验上更进一步。 对于正在使用 Vite 的团队来说,Vitest 是一个自然的替代方案。 Vitest Rolldown Rolldown 是一个基于 Rust 编写的打包器,目标是成为 Rollup 的继任者和 Vite 的默认构建引擎。
原文博客地址:https://nuxt.com/blog/roadmap-v4 Vitest 3.2 来啦,测试更高效 Vitest 3.2 Vitest 3.2 带来多项测试增强功能,包括测试注解 API }, }, ], }, }) 另外本次更新将弃用 workspace ,改用 projects import { defineConfig } from "vitest Nuxt v4 提供更现代化的开发体验,Vitest 3.2 优化测试流程,Vite 7.0 预示构建工具的未来潜力,rolldown-plugin-dts 则为 TypeScript 开发者带来新选择
rollup-typescript-lib-boilerplate 仓库地址 github.com/crper/rollu… 提供了哪些特性呢 还是最小化原则,一个标准的现代化开发模板,包括各种配置文件 Vitest changlog 和版本管理 githooks门禁拦截 (husky and init hooks: pre-commit, commit-msg) eslint、prettier、commitlint、vitest Q: 安利一下 vitest vitest,这个名字我当初刚看到的时候,我还以为是给 vue 专用的单测框架。
Vitest 集成 Vite 7 支持 Vitest 3.2 及以上版本,确保测试工具与构建工具的无缝集成。 Vitest 是 Vite 生态系统中的测试框架,开发者可以利用其快速的测试执行能力来提升开发效率!
模拟vim奔溃环境 [xiaoqi@study vitest]$ vim man_db.conf [1]+ 已停止 vim man_db.conf #ctrl+z ]$ kill -9 %1 #模拟vim奔溃 [1]+ 已停止 vim man_db.conf [xiaoqi@study vitest]$ ls -la [root@study vitest]# ll 总用量 24 -rw-r--r--. 1 root root 5171 8月 14 20:15 man_db.conf -rw-r--r--. [root@study vitest]# iconv --list [root@study vitest]# iconv -f 原本编码 -t 新编码 filename [-o newfile] 选项与参数 # 将 /tmp/vitest/vi.big5 转成 utf8 编码 [root@study vitest]# iconv -f big5 -t utf8 vi.big5 -o vi.utf8 [root
最近几年热门的 vite 打包工具配套的 vitest,也是完全兼容 Jest 工具栈的;除了本身相比于 Jest 带来了比较大的性能提升之外,vitest 还提供了更好的 ESM 等支持。 一般也用 @testing-library 来搭配 vitest,提供 DOM 等核心测试能力。 play 一下 在开发实践中对比几种测试,Jest/vitest 单元测试易于开发人员编写,但其运行在命令行下,不够直观;而 Storybook 展示直观,却大部分只能靠开发者人工检查其有效性,由于无法集成到 password'), 'a-random-password'); await userEvent.click(canvas.getByRole('button')); // 直接用 jest/vitest
团队与技术进展 种子轮后,精简团队显著增长,吸纳 napi-rs 作者和 Vite/Vitest/Rolldown/Oxc 核心贡献者全职加入。 关键里程碑: Vite周下载量超过Webpack。 Vitest浏览器模式稳定。 Rolldown周下载量达100万。 Oxlint支持类型感知linting和JS自定义插件。 Vite+作为可持续性第一步,商业化回馈开源(底层Vite/Vitest/Oxc保持MIT)。 未来:通过Vite+企业支持,保障开源项目长期演进。
5.2 TypeScript 中推荐的测试框架:Vitest Vitest 是一个适合 TypeScript 项目的测试框架,提供了即开即用的体验,尤其是在“单测冷启动”问题上优势明显: 1、支持直接在源码文件写测试 :In-Source Testing(https://vitest.dev/guide/in-source.html) // src/index.ts // the implementation export ) { const { it, expect } = import.meta.vitest it('add', () => { expect(add()).toBe(0) expect }) } 如果测试用例较多,也可以像 Go 那样,在源码文件旁边创建测试文件,例如:index.test.ts,比如: 2、TS 开箱即用,无需额外配置 与 Jest 或 Mocha 等框架相比,Vitest 使用 Vitest,你只需要: npx vitest xxx.test.ts 即可轻松运行测试,完全消除了“单测冷启动”的障碍。
基于 Vite 的测试工具 Vitest 诞生,成为替代 Jest 的新一代测试方案。 不光是 Vite,也有 Vite 生态中其它的一些项目使用 VitePress 进行文档站点的搭建,比如 Vitest[4], vite-plugin-pwa[5] 以及 VitePress[6] 自身的文档 单元测试和 E2E 测试从 Jest 完全迁移到 Vitest,一方面 Vitest 更快、体验更好,另一方面也能在 Vite 这样大型的仓库完善 Vitest 的生态,进一步提升 Vitest 稳定性 与此同时,Vite 的社区生态也逐步完善,比如 Vitest、VitePress、丰富的社区插件[10]以及众多内置 Vite 的社区框架等等,可以预见的是,Vite 将在未来的很长一段时间内继续发展, : https://vitest.dev/ [5] vite-plugin-pwa: https://vite-plugin-pwa.netlify.app/ [6] VitePress: https:
vite test:集成Vitest,复用Vite的解析/转换配置,支持Jest API、浏览器模式和覆盖率报告。 生态标准化:Vite插件的无缝扩展 Vite+兼容Vite的插件系统,支持meta框架插件(如SvelteKit): 测试/ linting:Vitest/Oxlint复用Vite配置,开箱即用。 底层如Vite/Vitest/Oxc保持MIT开源。 优点:Vite用户渐进升级,商业层回馈开源,平衡社区与规模价值。
技术资讯 Vitest[2] antfu 和 patak 开发了一个由 Vite 提供支持的快速单元测试框架,特性: Vite 的配置、转换器、解析器、插件 智能和实时观看模式,用于测试的 HMR Vue 参考资料 [1]食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly: https://github.com/Geekhyt/weekly [2]Vitest: https ://vitest.dev/ [3]如何做前端单元测试: https://juejin.cn/post/7039108357554176037 [4]Web Performance Calendar: