ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

vue-vben-admin 如何编写与运行 Vitest 单元测试

vue-vben-admin 如何编写与运行 Vitest 单元测试 vue-vben-admin 如何编写与运行 Vitest 单元测试【免费下载链接】vue-vben-adminA modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. Its fast!项目地址: https://gitcode.com/GitHub_Trending/vu/vue-vben-admin如果你要在 vue-vben-admin 仓库中为改动过的逻辑补充自动化验证或者在提交代码前确认现有功能没有被破坏需要知道这个仓库的单元测试是怎么组织、怎么运行、以什么结果作为判断依据。vue-vben-admin 是一个基于 Vue3、Vite、TypeScript 的 Monorepo 管理后台项目内置了 Vitest 作为单元测试工具Vitest 是一个基于 Vite 的测试运行器。本文只覆盖单元测试pnpm test:unit这条路径不覆盖 E2E 测试那是独立的test:e2e任务。完成本文后你可以按仓库约定写一个.test.ts用例在仓库根目录跑通pnpm test:unit并根据执行结果判断改动是否正确。准备环境运行测试前先确认环境满足 快速开始文档 的要求Node.js 22.18.0 及以上版本仓库根目录 package.json 的engines字段声明为^22.18.0 || ^24.12.0可以用node -v查看版本依赖安装只支持 pnpmpreinstall脚本使用npx only-allow pnpm限制仓库engines要求pnpm 11.0.0packageManager固定为pnpm11.16.0存放代码的目录及所有父级目录不能包含中文、韩文、日文或空格否则安装依赖后启动会出错。在仓库根目录安装依赖pnpm installvitest本身已在根目录devDependencies中版本由catalog:管理pnpm-workspace.yaml 中声明为^4.1.11不需要额外安装。测试命名约定与全局配置项目约定见单元测试文档测试文件名以.test.ts结尾或者存放到__tests__目录内例如为utils.ts编写测试就在同级目录创建utils.test.ts。仓库根目录的 vitest.config.ts 是所有包的统一测试配置写用例前需要了解其中影响运行环境的三项export default defineConfig({ plugins: [Vue(), VueJsx()], test: { environment: happy-dom, // ... exclude: [ ...configDefaults.exclude, **/e2e/**, **/dist/**, // ... ], }, });plugins: [Vue(), VueJsx()]测试中可以直接引用.vue单文件组件和 JSXenvironment: happy-dom默认提供 DOM 环境组件类用例依赖它。配置里还针对 happy-dom v20 默认禁用 JS 求值的变更设置了handleDisabledFileLoadingAsSuccess: true保留脚本加载被禁用时的测试行为一般不需要动exclude在 Vitest 默认排除项之外额外排除了**/e2e/**、**/dist/**等目录。E2E 用例不属于单元测试的收集范围写用例时不要把它们放进这些路径。编写测试用例按 单元测试文档 给出的最简写法测试文件从vitest导入 API 并断言结果文档示例sum为你自己模块中实际导出的函数// utils.test.ts import { expect, test } from vitest; import { sum } from ./sum; test(adds 1 2 to equal 3, () { expect(sum(1, 2)).toBe(3); });仓库中已经存在大量可以模仿的用例两种常见结构都有平铺的testexpect风格参考 internal/node-utils/src/tests/hash.test.ts用例放在__tests__目录通过相对路径导入被测模块如import { generatorContentHash } from ../hash;用expect(actual).toBe(expected)断言describe/it分组风格参考 playground/tests/unit/date-range-codec.test.tsplayground应用下__tests__/unit/目录存放单元测试用例按功能分组断言提交值的编解码结果。新用例写完后无需改vitest.config.ts只要文件名以.test.ts结尾或位于__tests__目录就会被自动收集。运行单元测试在仓库根目录执行pnpm test:unit该脚本在根目录 package.json 中定义为vitest run --dom对应 本地开发文档 里 Npm Scripts 一节中「运行 vitest 单元测试」的说明。它在一次运行中执行仓库内收集到的所有单元测试。文档同时指出项目中已有一些单元测试用例可以搜索以.test.ts结尾的文件来查看更改到相关代码时可以运行单元测试来保证代码的正确性。验证结果与后续约定判断标准以 Vitest 的终端输出为准测试通过说明现有逻辑未被破坏如果某个用例失败先看终端输出中列出的失败用例名称定位到对应源文件修正实现或断言后重新执行pnpm test:unit直到本次改动涉及的用例全部通过。仓库文档没有给出固定的通过数量或日志模板以实际运行为准。单元测试文档 对后续开发还有两条明确建议可以直接作为团队约定开发过程中保持单元测试的覆盖率在 CI/CD 流程中运行单元测试保证测试通过再进行项目部署。如果依赖安装或运行出现异常本地开发文档 的「问题解决」一节提供了pnpm reinstall作为重试验证手段注意该命令会删除整个仓库所有的node_modules后重新安装依赖速度会明显变慢且仅适用于依赖相关问题。【免费下载链接】vue-vben-adminA modern vue admin panel built with Vue3, Shadcn UI, Vite, TypeScript, and Monorepo. Its fast!项目地址: https://gitcode.com/GitHub_Trending/vu/vue-vben-admin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表