jest在node中使用
在node中直接使用jest
本人在做一些小的功能,需要用jest进行一下单元测试。在使用中,发现简单运行jest会报错
以下是我的package.json
{
"name": "leet",
"version": "1.0.0",
"description": "leetcode",
"main": "index.js",
"scripts": {
"test": "jest"
},
"author": "",
"license": "ISC",
"devDependencies": {
"jest": "^27.0.4"
}
}
直接运行npm run test
会报错
问题原因所在
jest对es module的存在问题。解决的方法有两个,一是使用babel转义,二是使用jest对es module的实验性支持功能
解决方法一:使用babel
- 安装依赖包
npm i -D --dev babel-jest @babel/core @babel/preset-env
- 配置
babel.config.js
module.exports = {
presets: [['@babel/preset-env', { targets: { node: 'current' } }]],
}
解决方法二:使用es6 module实验性支持功能
- 配置package.json
{
"script":{
"test":"jest --experimental-vm-modules"
}
}