Vue使用Jest


Vue test:unit配置

一、插件配置

1.1 確保工程中已經存在vue-loader 和 babel插件

1.2 添加處理單文件組件

    npm install –save vue-jest

1.3 配置jest babel

    npm install –save babel-jest

1.4 安裝vue test utils 和 jest

    npm install --save jest @vue/test-utils

 

二、腳本添加

2.1 添加運行腳本

Package.json文件

{

  ‘script’:{

test:unit: ‘jest –clearCache && vue-cli-service test:unit --coverage’

}

}

 

三、添加環境等,為測試開啟ES module語法等

3.1添加 .babelrc 文件內容

{

  ‘presets’: [[‘env’, {‘modules’:false}]],

  ‘env’: {

‘presets’: [[‘env’, {‘targets’:{‘node’: ’current’}}]]}

}

 

四、測試文件格式及命名規則

4.1 在test/unit/文件夾下創建文件並編寫測試用例,文件以 .spec.js 結尾

    語法請參照 jest 官方文檔

 

五、 如果報錯請看報錯信息 是否缺少依賴

5.1 安裝label-preset-env

    npm install –save label-preset-env

5.2 安裝regenerator-runtime

    npm install –save regenerator-runtime

 

 

jest.config.js文件如下

module.exports = {
moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
'jest-transform-stub',
'^.+\\.jsx?$': 'babel-jest'
// "^.+\\.js$":"babel-jest"
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
snapshotSerializers: ['jest-serializer-vue'],
testMatch: [
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
],
collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
coverageDirectory: '<rootDir>/tests/unit/coverage',
// 'collectCoverage': true,
'coverageReporters': [
'lcov',
'text-summary'
],
verbose: true,
testURL: 'http://localhost/',
// 'vendor': path.resolve(__dirname, '../src/vendor')
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM