1. 使用vite搭建测试项目:
vue create test-vue-jest
选择单元测试:Unit Testing--->jest
2. 配置 jest.config.js
module.exports = {
transform: {
"^.+\\.vue$": "vue-jest",
},
preset: '@vue/cli-plugin-unit-jest/presets/typescript-and-babel',
// 开启生成覆盖率功能
"collectCoverage": true,
// 配置需要检查覆盖率的文件
"collectCoverageFrom": [
"src/**/*.{js,vue}"
]
};
3. npm run test:unit 运行测试
4. 初次运行时报错: vue-template-compiler
Test suite failed to run Cannot find module 'vue-template-compiler
vue-template-compiler是vue2的包,vue3使用的是 vue/compiler-sfc
解决:
(1) npm I vue-jest@next @vue/test-utils@next -D (或npm i vue3-jest )
(2)module.exports = { //... transform: { "^.+\\.vue$": "vue-jest", }, };
5. 报错 Cannotread property 'hasOwnProperty' of undefined
解决:shallowMount改为mount (原因未知,持续更新)