当前位置: 首页 > news >正文

Vue3 + Vitest 浏览器测试 从零开发指南

一、我们要做什么写一个Vue3 计数器组件显示名字 点按钮数字1写Vitest 自动化测试让电脑自动验证功能是否正确全程不用弹浏览器在终端就能看到测试结果 ✅二、准备工作只需要 1 个软件安装Node.js一路下一步https://nodejs.org/安装完打开VS Code终端输入检查node-vnpm-v出现版本号 成功三、第一步创建项目1. 新建文件夹名字叫vue-vitest-demo2. VS Code 打开文件夹文件 → 打开文件夹 → 选择你创建的文件夹3. 打开终端顶部 → 查看 → 终端4. 初始化项目npminit-y执行完会生成package.json项目配置文件四、第二步安装所有依赖直接复制运行运行这条命令安装所有需要的工具npminstall-Dvitest vue/test-utils jsdom vitejs/plugin-vue typescript vue安装完成后你的package.json里会出现这些依赖。五、第三步创建项目文件结构你的项目必须长成下面这样不能错vue-vitest-demo/ ├─ src/ │ └─ HelloWorld.vue (组件) │ └─ HelloWorld.spec.ts (测试文件) ├─ vitest.config.ts (测试配置) ├─ tsconfig.json (TS配置) ├─ vue.shim.d.ts (TS识别Vue) └─ package.json六、第四步复制代码全部给你准备好了1. src/HelloWorld.vue组件script setup langts // 导入Vue响应式功能 import { ref } from vue // 定义组件接收的参数必须传name是字符串 defineProps{ name: string }() // 定义响应式数字count默认值1 const count ref(1) /script template div !-- 展示名字和计数器 -- h1Hello {{ name }} x{{ count }}!/h1 !-- 点击按钮count1 -- button clickcountIncrement/button /div /template2. src/HelloWorld.spec.ts测试文件import{expect,test}fromvitestimport{mount}fromvue/test-utilsimportHelloWorldfrom./HelloWorld.vuetest(renders name and the counter,async(){// 挂载组件传入 name 属性constwrappermount(HelloWorld,{props:{name:Vitest},})// 检查页面是否显示 Hello Vitestexpect(wrapper.text()).toContain(Hello Vitest)// 模拟点击按钮awaitwrapper.find(button).trigger(click)// 检查点击后数字变成 2expect(wrapper.text()).toContain(2)})3. vitest.config.ts测试配置import{defineConfig}fromvitest/configimportvuefromvitejs/plugin-vueexportdefaultdefineConfig({plugins:[vue()],test:{environment:jsdom,},})4. tsconfig.jsonTypeScript 配置{compilerOptions:{target:ESNext,lib:[esnext,dom],module:ESNext,moduleResolution:Bundler,strict:true,declaration:true,noEmit:true,esModuleInterop:true,skipLibCheck:true}}5. vue.shim.d.ts让 TS 认识 Vue 文件declaremodule*.vue{importtype{DefineComponent}fromvue;constcomponent:DefineComponent{},{},any;exportdefaultcomponent;}6. package.json添加测试命令找到scripts改成scripts:{test:vitest}七、第五步运行测试见证成功在终端输入npmruntest你会看到RERUN src/HelloWorld.spec.ts x1 ✓ src/HelloWorld.spec.ts (1 test) 26ms ✓ renders name and the counter 25ms Test Files 1 passed Tests 1 passed✅全部跑通八、每一步我们干了什么1. HelloWorld.vue写了一个页面组件接收名字name显示Hello xxx x1!点击按钮数字 12. HelloWorld.spec.ts写了一个自动测试脚本自动加载组件自动检查文字是否正确自动点击按钮自动检查数字是否变成 23. 配置文件让TypeScript Vitest Vue能一起工作。4. 运行测试电脑自动帮你测试功能不用你手动点页面九、常见问题2. TS 报红检查vue.shim.d.ts是否创建检查tsconfig.json是否正确3. 命令报错重新运行安装命令npminstallps:https://cn.vitest.dev/ https://github.com/vitest-tests https://changweihua.github.io/zh-CN/blog/2025-09/vue-vitest.html https://betterstack.com/community/guides/testing/vitest-explained/
http://www.gsyq.cn/news/1336874.html

相关文章:

  • 一文看懂区块链:从“多人记账本”到数字世界的信任机器
  • 电动汽车高压系统狭窄空间高精度电流电压测量方案解析
  • 工业物联网主板布局设计:从i.MX28x核心到无线模块的硬件规划
  • 别再硬算滤波器系数了!用Matlab快速验证AD9361半带滤波器(附Rx HB1代码)
  • PyQt6进度条样式美化全攻略:从默认“灰条”到高颜值自定义控件
  • 飞桨AI Studio玩转PyTorch:手把手教你配置Conda虚拟环境与清华镜像
  • 比完美主义更害人的,是“先做个垃圾出来”
  • 2025-2026年全球包装线品牌推荐:五大排行厂商专业评测解决饮料产线致漏液痛点 - 品牌推荐
  • 极竞魔方XR大空间亮相孩子王南京城市亲子节
  • 从推荐逻辑到库存架构:木鸟民宿、携程民宿、爱彼迎场景化服务技术对比
  • 2025-2026年国内打包袋品牌推荐:十大排行产品专业评测解决生鲜配送致保鲜痛点 - 品牌推荐
  • 【2026实测】毕业论文降AI太难?实用工具红黑榜与6大手工微调秘籍
  • 一文搞懂 MySQL:一条 SQL 语句的完整执行之旅
  • 用 Excel 手动实现 MLP 前向传播 + 反向传播(完整版)
  • 【设计模式 10】抽象工厂:整体换季
  • Semi Design v2.98.0 发布:多项组件功能更新与问题修复,助力搭建美观 React 应用
  • 从RTL代码到SDC约束:手把手教你为FPGA/ASIC中的时钟管理模块(如PLL、MMCM)写生成时钟
  • Prompt基础与AI产品管理方法论 — 深度解析与实操设计 - hlc
  • 2025-2026年优优推电话查询:网络推广前请核实服务范围与收费模式 - 品牌推荐
  • STM32F103 平行替代方案全面分析(2026 年最新)
  • 2026最新毕业论文降AI全攻略:亲测高好用的3款工具与6大手动优化技巧
  • 应对2026AIGC检测:3款降AI工具实测与6个零成本手改技巧
  • linux内存惰性分配:从虚拟地址到物理页的深度解析
  • 高通平台Sensor驱动移植避坑指南:以QCM6490平台BMI160为例,从编译到上电调试全流程
  • Gemini 3.5 Flash 完整介绍:定价、性能、接入教程与选型建议
  • 公域卖课佣金高、粉丝留不住?这套私域打法,完课率提升了3倍
  • 手把手教你用W25Q32 SPI Flash:从波形图看懂擦除、写入和读取(附完整代码)
  • 百考通AI搭起学术研究的“起跑线”
  • 高中学习机选购指南:告别营销陷阱,用科学逻辑选对真正有用的产品
  • 不知道怎么挖漏洞?吐血整理40个网络安全漏洞挖掘姿势,看完不信你还挖不到