vue3配置jest自动化测试

前排提醒,并不是所有的项目都需要单元测试,因为写单元测试真的很耗时间。单元测试主要针对需求变更不多,项目时间充裕的项目。如elementui这种框架类的项目

本文主要针对vue3+vuecli4

这里主要有两种情况:新建项目和老项目

对于新建项目,在通过脚手架生成时可选择"unit testing",之后会自动生成相应配置。

这里主要介绍的是老项目添加单元测试。进入项目根目录,控制台输入

vue add @vue/unit-jest 

此时脚手架会自动安装jest相关依赖,并生成对应配置,修改文件如下:

1. package.json

"scripts": {
    "test:unit": "vue-cli-service test:unit",
  },
"devDependencies": {
    "@vue/cli-plugin-unit-jest": "~5.0.0",
    "@vue/test-utils": "^2.0.0-0",
    "@vue/vue3-jest": "^27.0.0-alpha.1",
    "babel-jest": "^27.0.6",
    "jest": "^27.0.5"
},
"rules": {},
"overrides": [
   {
     "files": [
        "**/__tests__/*.{j,t}s?(x)",
        "**/tests/unit/**/*.spec.{j,t}s?(x)"
     ],
     "env": {
        "jest": true
      }
   }
 ]

2. jest.config.js

module.exports = {
  preset: '@vue/cli-plugin-unit-jest'
}

3. test 文件夹,其中包含unit文件夹及example.spec.js文件,该文件为示例代码,可删除

import { shallowMount } from '@vue/test-utils'
import HelloWorld from '@/components/HelloWorld.vue'

describe('HelloWorld.vue', () => {
  it('renders props.msg when passed', () => {
    const msg = 'new message'
    const wrapper = shallowMount(HelloWorld, {
      props: { msg }
    })
    expect(wrapper.text()).toMatch(msg)
  })
})

文件生成之后其实已经可以进行单元测试了,可以在自动生成的unit文件下新建 xxx.spec.js 并引入需要测试的组件,也可以在对应的组件文件夹中新建__tests__文件,并在文件夹下新建xxx.test.js(规则可参考package.json中的override配置)

需要注意的是,有些项目可能配置了别名,这时就需要在jest.config.js中配置moduleNameMapper了

module.exports = {
  preset: '@vue/cli-plugin-unit-jest',
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1',
    '^@base/(.*)$': '<rootDir>/base_component/$1'
  } // 别名
}

 这里我需要测试的是公共组件,因此在公共组件的button文件夹下新增了__tests__文件,并新建测试文件button.spec.js

import { mount } from '@vue/test-utils'
import ButtonComp from '../index'

test('button', () => {
  // const wrapper = mount(ButtonComp)
})

控制台运行jest发现报错

 因为项目用到的插件不符合规范,因为需要做兼容配置,在jest.config中新增transformIgnorePatterns配置

transformIgnorePatterns: [
    'node_modules/(?!lodash-es/.*)'
  ],

在此运行jest可以发现运行成功了

 

至此配置完毕,可以愉快的进行测试用例编写了。以下为vue官方测试用例文档

Vue Test Utils  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值