Open sinkcup opened 2 years ago
jest 报错:
SyntaxError: Cannot use import statement outside a module
查资料发现:jest 尚不能默认支持 ES6,https://jestjs.io/docs/ecmascript-modules
最终这样解决:https://stackoverflow.com/a/61652773/3606894
jest.config.mjs
testEnvironment: "jest-environment-node",
transform: {},
npm i cross-env --save-dev
"scripts": {
"lint": "eslint src/ tests/",
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest"
},
eslint 报错:
'test' is not defined
解决办法:https://www.npmjs.com/package/eslint-plugin-jest
npm i --save-dev eslint-plugin-jest
.eslintrc.yml
env:
"jest/globals": true
plugins:
- jest
命令行跑通 jest 没用,因为 test 关键靠 IDE 的「调试」。
没找到现成的文档,折腾了一会儿,还是只能运行,不能调试。
在 vscode 里配置 jest ES6:
NODE_OPTIONS=--experimental-vm-modules npx jest
把一个文件的 行覆盖率做到了 100%,发现一个问题:codecov 分析的 jest clover xml 和 jest text 不一致
https://app.codecov.io/gh/sinkcup/coverage-badge/blob/main/src/main.js
找到了以前有人提的 bug,一直没修:
https://github.com/codecov/codecov-node/issues/168 https://community.codecov.com/t/false-partials-in-code-coverage-javascript-typescript/2957
解决了,看有人提了句:上传 lcov.info
而不是 clover.xml
https://community.codecov.com/t/wrong-coverage-percentage/1775/12
看了下 vue 和 react 文档,都支持 jest,所以决定使用 jest