jest搭建vue项目单元测试-现有老项目

2023-11-20

说到项目会分为新建的醒目和老项目两种。

jest搭建vue项目单元测试-vue-cli创建新项目

我们接下来说现有老项目。

现有的vue老项目或者没使用vue-cli创建项目搭建jset单元测试:

                

        1、安装

                npm i @vue/test-utils @vue/cli-plugin-unit-jest babel-jest jest@26.0.0 jest-serializer-vue jest-transform-stub vue-jest babel-core@^7.0.0-bridge.0 babel-preset-env @babel/plugin-transform-runtime @babel/runtime @babel/preset-env @babel/runtime-corejs3 @vue/cli-plugin-babel -D

        运行的时候可能会出现提示缺少包,我们安装提示的依赖。这里面要注意一下babel-core这个包我们需要指定版本

        2、配置package.json

                scripts 中增加 "unit": "jest --config test/unit/jest.config.js --coverage"

        3、创建目录

                

                项目根目录中创建test/unit目录,内部:

                        创建coverage目录 存放覆盖率报告

                        创建specs目录 存放测试用例

                        创建jest.config.js文件,用于配置jset

        4、配置jest.config.js

                

const path = require('path');

module.exports = {
    preset: '@vue/cli-plugin-unit-jest',
    verbose: true,
    testURL: 'http://localhost/',
    rootDir: path.resolve(__dirname, '../../'),
    moduleFileExtensions: [
        'js',
        'json',
        'vue'
    ],
    moduleNameMapper: {
        '^@\/(.*?\.?(js|vue)?|)$': '<rootDir>/src/$1',   // @路径转换,例如:@/components/Main.vue -> rootDir/src/components/Main.vue
        '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/test/unit/__mocks__/fileMock.js', // 模拟加载静态文件
        '\\.(css|less|scss|sass)$': '<rootDir>/test/unit/__mocks__/styleMock.js'  // 模拟加载样式文件   
    },
    testMatch: [ //匹配测试用例的文件
        '<rootDir>/test/unit/specs/*.spec.js'
    ],
    transform: {
      '^.+\\.vue$': 'vue-jest',
      '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
      '^.+\\.jsx?$': 'babel-jest',
    },
    testPathIgnorePatterns: [
        '<rootDir>/test/e2e'
    ],
    transformIgnorePatterns: ['/node_modules/'],
    // setupFiles: ['<rootDir>/test/unit/setup'],
    snapshotSerializers: ['<rootDir>/node_modules/jest-serializer-vue'],
    collectCoverage: true, // 开启生成测试报告
    coverageDirectory: '<rootDir>/test/unit/coverage', // 覆盖率报告的目录
    collectCoverageFrom: [ // 测试报告想要覆盖那些文件,目录,前面加!是避开这些文件
        // 'src/components/**/*.(js|vue)',
        // 'src/components/*.(vue)',
        'src/**/*.(js|vue)',
        '!src/main.js',
        '!src/router/index.js',
        '!**/node_modules/**'
    ]
}

         5、配置babel

                项目根目录下创建.babelrc文件

{
  "presets": [
    ["@babel/preset-env", {
      "modules": "commonjs",
      "targets": {
        "browsers": ["> 1%", "ie > 9"]
      }
    }],
    "@vue/cli-plugin-babel/preset",
    [
      "env", { 
        "modules": false,
        "test": {
          "presets": ["env"]
        }
      }
    ]
  ],
  "plugins": [
    ["@babel/plugin-transform-runtime"],
    ["@babel/plugin-proposal-decorators", { "legacy": true }],
    ["@babel/plugin-proposal-class-properties", { "loose": false }],
    ["transform-vue-jsx"]
  ],
  "env": {
    "development": {}
  }
}

        6、创建测试文件

                在specs目录中创建test.spec.js文件


test('adds 2 + 3 to equal 5', () => {
  expect((2 + 3)).toBe(5);
});

        7、运行npm run unit

                看到测试结果:

        至此,已有的vue项目中我们使用jest做单元测试环境我们就安装好了。

                

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jest搭建vue项目单元测试-现有老项目 的相关文章

  • 重用的undo日志 (3)—mysql进阶(六十六)

    前面说了undo日志的文件格式 第一页和后面的页是不同的 填入undo日志之前 会先把undo page header属性填满 还有undo segment header undo log header List base node存在un
  • Open Camera异常分析(一)

    负责的项目中遇到一些三方和其他的场景使用camera导致问题 并且没有及时释放camera device致使手机camera应用一直无法使用的严重问题 针对这类问题进行了一系列的分析与追踪 最后算是定位到了问题且提供了一些解决方案 但整个追
  • 编程题——连续最大和

    编程题 连续最大和 题目描述 一个数组有 N 个元素 求连续子数组的最大和 例如 1 2 1 和最大的连续子数组为 2 1 其和为 3 输入描述 输入为两行 第一行一个整数n 1 lt n lt 100000 表示一共有n个元素 第二行为n
  • 拼多多anti-token 字段加解密学习分析

    注 本篇文章仅学习交流该APP的加密方法 提示我们的安全技术 不可以对该app和公司造成违法行为 否则后果自负 如有侵权行为 烦请贵司与我第一时间联系 下架文章 感谢 app 版本 6 26 我们抓包得到这里有个关键字段 anti toke
  • 一维卷积神经网络直接读取mat文件并进行数据增强和归一化

    众多师弟师妹在使用一维卷积神经网络对凯斯西储 哥伦比亚等大学开源的轴承故障数据集进行故障诊断时 不知道该怎么把Matlab文件中的数据直接导进伸进网络进行训练 我之前也不会 我一直用matlab打开数据然后黏贴到EXCEL再进行数据增强和归
  • 大华摄像头:视频抓图接口

    大华摄像头 视频抓图接口 CLIENT CapturePictureEx 保存图片 对显示图像进行瞬间抓图 CLIENT SetSnapRevCallBack 设置抓图回调函数 CLIENT SnapPictureEx 抓图请求扩展接口
  • 古典密码汇总。

    一 密码类型汇总 23 维吉尼亚密码 Vigen re Cipher Vigen re Cipher 由于频率分析法可以有效的破解单表替换密码 法国密码学家维吉尼亚于1586年提出一种多表替换密码 即维吉尼亚密码 也称维热纳尔密码 维吉尼亚
  • AQS底层原理

    1 AQS能干嘛 是什么 能干嘛 加锁就会有阻塞 有阻塞就需要排队 实现排队必然需要有某种形式的队列来进行管理 是什么 废话 抽象的队列同步器 翻译一下 AQS是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石 通过内置的
  • 一文打通Sleuth+Zipkin 服务链路追踪

    1 为什么用 微服务架构是一个分布式架构 它按业务划分服务单元 一个分布式系统往往有很多个服务单元 由于服务单元数量众多 业务的复杂性 如果出现了错误和异常 很难去定位 主要体现在 一个请求可能需要调用很多个服务 而内部服务的调用复杂性 决
  • 使用brew services管理服务

    原文 https www jianshu com p 6c3b26490861 简介 官网 https github com Homebrew homebrew services macOS使用launchctl命令加载开机自动运行的服务
  • 基于 LoadRunner 实现企业级服务器端性能测试的实践

    后端性能测试工具首先通过虚拟用户脚本生成器生成基于协议的虚拟用户脚本 然后根据性能测试场景设计的要求 通过压力控制器控制协调各个压力产生器以并发的方式执行虚拟用户脚本 并且在测试执行过程中 通过系统监控器收集各种性能指标以及系统资源占用率

随机推荐

  • Linux部署jar包,隐藏命令行参数

    Linux部署jar包 隐藏命令行参数 一 背景需求 二 查阅资料 三 实现隐藏库 3 1 测试test c 3 2 设置隐藏库 3 3 验证 四 应用jar启动命令 五 直接应用结果 最新项目安全检测 发现配置文件中数据库密码 redis
  • Linux提权—脏牛漏洞(CVE-2016-5195)复现

    脏牛漏洞 脏牛漏洞 又叫Dirty COW 存在Linux内核中已经有长达9年的时间 在2007年发布的Linux内核版本中就已经存在此漏洞 Linux kernel团队在2016年10月18日已经对此进行了修复 漏洞范围 影响版本 该漏洞
  • Spring Data JPA与JDBC的区别和基本用法

    JPA 与 JDBC 的区别和基本用法 原文地址 JPA 概念 JPA Java Persistence API 用于对象持久化的 API 是 Java EE 5 0 平台标准的 ORM 规范 使得应用程序以统一的方式访问持久层 与 JDB
  • Scrapy爬虫,数据存入MongoDB

    开始 首次登陆MongoDB 由于没有设置用户管理权限 会给出警告 WARNING Access control is not enabled for the database 警告 warning 和错误 error 不一样 你完全可以忽
  • ip正则表达式

    var Sip rule value callback gt if 2 5 0 5 0 4 d 0 1 d 1 2 2 5 0 5 0 4 d 0 1 d 1 2 3 test value false callback new Error
  • JavaWeb之xml学习笔记二(dom4j简单使用)

    使用dom4j来解析xml文件 首先需要下载dom4j 去官网下载最新版本 下载之后 我们先要在ide里创建一个xml用来提取数据 以下是用来解析的示例H xml文件
  • 若依ruoyi——手把手教你制作自己的管理系统【二、修改样式】

    阿里图标一 图片白嫖一 3 专栏略长 爆肝万字 细节狂魔 请准备好一键三连 运行成功后 idea后台正常先挂着 我习惯用VScode操作 当然如果有两台机子 一个挂后台一个改前端就更好了 只需修改vue config js配置文件即可 eg
  • Beats — Filebeat 基础操作

    ElasticStack Beats 定义 一 ElasticStack 的组成 二 Beats 组件 FileBeat 日志采集 二 Filebeat 工作原理 三 启动命令 四 部署和运行 1 output console 通过终端获取
  • Centos8启动卡在[OK] Started GNOME Display Manager.Dispatcher Service...rvice.emon.

    一 Centos8界面版本启动卡住问题如图 1 界面虽然界面卡住 但是服务可以访问 还可以使用xshell连接 或者其他远程软件连接使用 说明Centos8服务器已经启动了 但是界面卡住了 2 百度找了很多办法 说ctrl alt F1 F
  • 【1.前端Nginx负载均衡反向代理和双机热备配置】

    Nginx负载均衡 反向代理 双机热备 方案想法 两台xmail放置企业内网环境 为确保数据信息安全 外网用户无法直接访问 因此 给外网用户一个单独的入口做反向代理 其实一台Nginx服务器即可 但如果xmail服务比较多 唯一的出口不幸挂
  • Word调整标题格式

    将光标放在该级标题之后 右键 编号 定义新编号形式 编号格式改为想要的形式 以第1章为例 中间的数字形式是编号样式决定 需要将光标放在数字所在位置 选择相应形式 最后确定 就可以看到标题形式变为设置的那样
  • Spring Singleton Bean 三级缓存

    spring getBean的三级缓存有点绕 但理清楚了 就会发现也挺简单的 一 循环依赖 循环依赖有多种情况 以下整理的三种 1 构造方法互相依赖 例如ServiceA的构造方法中依赖了ServiceB Service的构造方法中依赖了S
  • 由于回车符引起的shell错误

    今天弟弟写shell时出现一个错误 源代码如下 zip r 1 2 执行时出现错误 我也写了相同的语句 发现是可以执行的 把两个文件对比一看 差别在于 出错shell 正确shell 在linux下的回车是 n 在win下面的回车是 r n
  • IIS上部署Django+vue-element-admin-master

    在Windows2012上通过IIS部署自己的web Django Vue element admin master 文章目录 前言 1 安装IIS和CGI 2 部署Django项目 3 部署vue element admin master
  • 二极管 MOS管 3.23学习笔记

    二级管 外加正向电压导通 外加反向电压截至 受电压极性控制的开关 缺点 1 由于二极管的导通压降 造成输出的电压与输入的高低电压有偏移 向下一级门电 路传递时 有高低电压的偏差 2 带负载能力差 MOS管 栅极 源极 漏极 衬底 当门极与衬
  • Mybatis-Plus insertBatch执行缓慢原因查询

    背景 最近在SpringCloud项目中 使用Mybatis Plus执行一个88万条左右的数据插入MySQL数据库的操作时 发现执行时长竟然长达2个小时 按理讲 MP框架执行如下批处理操作时 XXService insertBatch X
  • 【PyCharm警告】选择性忽略 PEP8 警告

    提示 Class names should use CamelCase convention Inspection info This inspection checks the PEP8naming conventions 为什么 从命名
  • spark SQL基础教程

    1 sparkSQL入门 sparksql专门用于处理结构化的数据 而RDD还可以处理非结构化的数据 sparksql的优点之一是sparkfsql使用统一的api读取不同的数据 第二个优点是可以在语言中使用其他语言 例如python 另外
  • 21电赛D题配置部分

    MJPG Streamer推流 安装MJPG Streamer 编辑 etc apt sources list 文件 删除原文件所有内容 用以下内容取代 deb http mirrors tuna tsinghua edu cn raspb
  • jest搭建vue项目单元测试-现有老项目

    说到项目会分为新建的醒目和老项目两种 jest搭建vue项目单元测试 vue cli创建新项目 我们接下来说现有老项目 现有的vue老项目或者没使用vue cli创建项目搭建jset单元测试 1 安装 npm i vue test util