(三)Jest简单配置
与webpack 类似,当不做配置的时候,运行webpack 命令也可以进行打包,它会遵循webpack 默认的配置进行打包操作。
Jest 不做配置的时候,也是遵循它默认的配置进行打包。
那么现在,我们自己来配置jest。
项目目录下,使用命令 npx jest --init执行之后自动生成jest.config.js配置文件
然后它会询问我们几个问题,根据需要选择就好
而我们看看jest.config.js 就可以发现,现在开放的三项(是刚刚我们选择的内容)
其余的都是注释掉的,需要的时候打开就好
执行 npx jest --coverage 命令,它能给我们生成代码覆盖率报告。执行后结果如下:
如果你想用npm命令执行的话,修改一下配置文件就可以了。
打开package.json文件,找到script设置处添加coverage配置。如图所示:
jest测试针对模块测试,所以必须引入模块概念,接下来就继续已上一节((二)Jest测试案例)的测试案例为例,继续修改代码。
修改math.js文件的代码如下:
export function add(a,b){
return a+b;
}
export function minnus(a,b) {
return a-b;
}
对应的math.jest.js对math中方法引入方式有所改变,import引入模块,对应代码如下:
import { add , minnus } from './math.js'
test('test add 1+1=2',()=>{
expect(add(1,1)).toBe(2)
})
test('test minnus 1-1=0',()=>{
expect(minnus(1,1)).toBe(0)
})
使用npm run test 命令之后后,发现代码报错Cannot find module '@babel/preset-env' from 'D:\my-web\auto-test'。提示我们还没有安装babel/preset-env模块。此时我们就需要安装babel/preset-env,执行命令npm install @babel/core@7.4.5 @babel/preset-env@7.4.5。命令执行完成后创建.babelrc配置文件,添加对应的设置,代码如下:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
]
]
}
此时重新运行npm run test就可以正常执行自动测试了。