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

在已有vue cli项目中添加单元测试配置

使用的是vue cli ^4.0.0的脚手架,项目采用的vue2进行编写,项目本身是没有使用单元测试的。应该挺多项目还是使用的vue2的项目进行开发的,自己在开发中过程中,还是发生了挺多需要记录原来功能的情况,这个时候去翻文档明显是不怎么可取的,且项目中文档不一定写的很好。

安装的依赖

pnpm i -D @vue/cli-plugin-unit-jest@4 @vue/test-utils@1 jest@26 @vue/vue2-jest@26 babel-jest@26

增加执行测试的脚本

文档路径:package.json

{
    "scripts": {
        // ...
        "test:unit": "jest",
    }
}

增加jest配置

文档路径:jest.config.js

module.exports = {
    preset: '@vue/cli-plugin-unit-jest',
    collectCoverage: false,
    collectCoverageFrom: [
        'src/**/*.{js,vue}',
        '!src/main.js',
        '!src/router/index.js',
        '!src/store/**/*.js',
        '!**/node_modules/**',
    ],
};

修改babel的配置

文档路径:.eslintrc.js

module.exports = {
    // ...
    env: {
        // ...
        jest: true,
    },
}

测试的组件

文件路径:tests\unit\components\formModule.spec.js,默认的测试文件的路径匹配到**/tests/unit/**/*/之下的文件中,所以按这个路径放文件就可以测试到

import { mount } from '@vue/test-utils';
import formModule from '@/components/form/formModule.vue';

describe('测试组件formModule.vue', () => {
    it('测试表单模块标题', () => {
        const title = '基本信息';
        const wrapper = mount(formModule, {
            propsData: {
                title,
            },
        });
        expect(wrapper.text()).toMatch(title);
    });
});

执行测试

npx pnpm test:unit

如果使用collectCoverage: true的配置的话, 可以生成代码的覆盖率

其他安装依赖的问题

问题1:TypeError: (0 , _vueJest.describe) is not a function

解决:在eslint中的env中添加jest为true

问题2:TypeError: Cannot destructure property ‘ensureValidVNode’ of ‘Vue.ssrUtils’ as it is undefined

解决:安装npx pnpm i -D @vue/test-utils@1


http://www.kler.cn/a/455805.html

相关文章:

  • matlab遇到的各种问题及解决方案
  • macos安装maven以及.bash_profile文件优化
  • XML与Go结构互转实现(序列化及反序列化)
  • 常用 Docker 命令介绍
  • tensorflow_probability与tensorflow版本依赖关系
  • leetcode83:删除链表中的重复元素
  • LLM常见面试题(26-30题)--langchain篇
  • Android 图片优化
  • Wend看源码-Java-集合学习(List)
  • 处理元素卡在视野边界,滚动到视野内
  • 混合式框架 Tauri
  • Vue3 核心语法
  • linux——vi命令常用操作
  • Linux从0到1——线程同步和互斥【互斥量/条件变量/信号量/PC模型】
  • 汽车CAN通信逻辑与LabVIEW开发
  • 第P4周:猴痘病识别
  • Unity中UGUI的Button动态绑定引用问题
  • 我的秋招总结
  • 告别 Shuffle!深入探索 Spark 的 SPJ 技术
  • 游戏引擎学习第63天