多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

前端自动化测试框架Jest的简单配置

更新时间:2022-06-15 09:12:25 作者:多测师 浏览:12

  Jest 和 Webpack 一样都有默认配置,我们可以运行 npx jest --init 命令来初始化默认配置。在运行命令行的时候,会弹出一些选项,比如:

前端自动化测试框架Jest的简单配置

  ·是否需要开启typescript

  · 是否需要生成覆盖率报告

  · 选择node 环境或者浏览器环境

  · 在测试完成之后,是否需要进行一些清除工作

  ……

  这些选项可以根据自己的实际情况进行选择是或者否。

  当全部选择完成之后,可以看到在目录中多了一个 jest.config.js 文件,这时候就说明初始化配置完成了。

  代码测试覆盖率

  当我们在控制台中输入npx jest --coverage时,控制台会打印出一些信息,这是一个关于测试覆盖率的说明,这是一个图表信息,它告诉我们所有的文件都被100%的测试到了。

  如果觉得执行npx jest --coverage命令太麻烦,你也可以将如下代码添加到 package.json 中:

  "scripts": {

  "test": "jest",

  "coverage": "jest --coverage"

  },

  复制代码

  然后可以执行npm run coverage,和执行npx jest --coverage是一样的效果。

  除了控制台可以看到图表信息之外,你还可以在当前目录下看到一个生成的coverage目录。在里面有一个lcov-report文件夹,里面有一个index.html,我们打开它可以看到,这是一个通过Jest生成的非常漂亮的html页面,上面会告诉我们,我们的每一个文件的测试到底覆盖了多少代码。可以看到,math.js 中的代码都被100%覆盖到了。

  通过这个例子,我们就理解了code coverage(代码覆盖率)的意思了。

  总结来说:测试覆盖率就是我们编写的测试代码对原来的功能代码的占比。

  tips: 配置文件中的coverageDirectory就是代码测试覆盖率生成报告所在的文件夹的名字:

  module.exports = {

  coverageDirectory: "abc"

  };

  复制代码

  例如,我们让coverageDirectory的值为abc,那么生成的测试报告就在目录abc下面。

  把commonjs改成es module

  我们先把 math.js 和 math.test.js 中的代码改成 es module 的规范:

  // math.js

  export function add(a, b) {

  return a + b;

  }

  export function minus(a, b) {

  return a - b;

  }

  export function multi(a, b) {

  return a * b;

  }

  复制代码

  // math.test.js

  import { add, minus, multi } from "./math";

  test("测试加法 3 + 3", () => {

  expect(add(3, 3)).toBe(6);

  });

  test("测试减法 3 - 3", () => {

  expect(minus(3, 3)).toBe(0);

  });

  test("测试乘法 3 * 3", () => {

  expect(multi(3, 3)).toBe(9);

  });

  复制代码

  然后运行 npm run test,会发现控制台报错了。

  要解决这个问题,需要用到 Babel 把代码进行转化就OK了,如果想让 Babel 支持 ESM,我们需要三个包:

  ·@babel/core:babel核心库

  · @babel/preset-env:进行 ES 语法转换的库

  · babel-jest:和 Jest 通信的库,用来检测是否安装了上面两个依赖

  但是因为我们在安装 Jest 的时候 babel-jest 就默认被安装了,所以我们只需要安装剩下两个包就行了。

  安装依赖:

  npm install @babel/core @babel/preset-env -D

  复制代码

  注:-D 是 --save -dev 的缩写。

  安装完成之后,在项目的根目录下创建一个 .babelrc 配置文件。

  创建完成之后,将如下代码添加到 .babelrc 中:

  {

  "presets": [["@babel/preset-env", { "targets": { "node": "current" } }]]

  }

  复制代码

  保存之后,重新运行 npm run test,执行测试用例即可。

  以上内容为大家介绍了前端自动化测试框架Jest的简单配置,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部