配置 vue 的 jest 單元測試時報錯如下:
Failed to write coverage reports: ERROR: Error: EEXIST: file already exists, mkdir 'xxx\tests\coverage\vue-cli-3\dist\js' STACK: Error: EEXIST: file already exists, mkdir 'xxx\tests\coverage\vue-cli-3\dist\js' at Object.mkdirSync (fs.js:738:3) at sync (xxx\node_modules\mkdirp\index.js:71:13) at sync (xxx\node_modules\mkdirp\index.js:77:24) at sync (xxx\node_modules\mkdirp\index.js:78:17) at sync (xxx\node_modules\mkdirp\index.js:78:17) at sync (xxx\node_modules\mkdirp\index.js:78:17) at sync (xxx\node_modules\mkdirp\index.js:78:17) at sync (xxx\node_modules\mkdirp\index.js:78:17) at sync (xxx\node_modules\mkdirp\index.js:78:17) at sync (xxx\node_modules\mkdirp\index.js:78:17)
百度、谷歌沒有無果。后來修改了 jest.config.js 里的 collectCoverageFrom 匹配規格解決問題。
將
// jest.config.js model.export={ // ... collectCoverageFrom: [ '**/*.{js,vue}', '!**/node_modules/**' ], // ... }
改成
// jest.config.js model.export={ // ... collectCoverageFrom: [ 'src/**/*.{js,vue}', '!src/main.js', '!src/router/index.js', '!**/node_modules/**' ], // ... }