IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> webpack配置篇(三十四):单元测试和测试覆盖率 -> 正文阅读

[开发测试]webpack配置篇(三十四):单元测试和测试覆盖率

说明

玩转webpack学习笔记

介绍

在这里插入图片描述

编写单元测试用例

在这里插入图片描述

  • 技术选型:Mocha + Chai 组合
  • 测试代码:describe:描述测试文件, it:一个 it 代表一个测试用例, except:用于断言
  • 测试命令:mocha add.test.js

测试用例的例子:add.test.js

const expect = require('chai').expect;

const add = require('../src/add');

describe('use expect: src/add.js', () => {
	it('add(1, 2) === 3', () => {
		expect(add(1, 2).to.equal(3));
	});
});

单元测试接入

1. 安装 mocha + chai

npm i mocha chai -D

2. 新建 test 目录,并增加 xxx.test.js 测试文件

3. 在 package.json 中的 scripts 字段增加 test 命令

"scripts": {
	"test": "node_modules/mocha/bin/_mocha”
},

4. 执行测试命令

npm run test

可以自己打开https://mochajs.org/查看更多

在这里插入图片描述

单元测试实战

  1. 新建文件夹跟文件,在 test 文件夹里添加 unit 文件夹,跟文件 webpack-base-test.js,该文件用来测试 lib/webpack.base.js 的。

在这里插入图片描述

// 引入断言库
const assert = require('assert');

describe('webpack.base.js test case', () => {
    const baseConfig = require('../../lib/webpack.base.js');
    console.log(baseConfig);
    // 看看entry是否正常
    it('entry', () => {
        
    });
});
  1. test 里添加入口文件 index.js

在这里插入图片描述

// 需要跑到smoke里template的目录
const path = require('path');
// 更改 Node.js 进程的当前工作目录 __dirname 为 test
process.chdir(path.join(__dirname, 'smoke/template'));

describe('builder-webpack test case', () => {
    require('./unit/webpack-base-test');
});
  1. 增加测试脚本
"test": "./node_modules/.bin/_mocha",

在这里插入图片描述

  1. 运行脚本
npm run test

在这里插入图片描述

  1. 在断言库的基础上添加 entry 判断测试,看看是否合理

在这里插入图片描述

// 引入断言库
const assert = require('assert');

describe('webpack.base.js test case', () => {
    const baseConfig = require('../../lib/webpack.base.js');
    console.log(baseConfig);
    // 看看entry是否正常
    it('entry', () => {
        assert.equal(baseConfig.entry.index, 'D:/MyGithub/webpack-demo/my-project/builder-webpack/test/smoke/template/src/index/index.js');
        assert.equal(baseConfig.entry.search, 'D:/MyGithub/webpack-demo/my-project/builder-webpack/test/smoke/template/src/search/index.js');
    });
});

执行 npm run test

在这里插入图片描述

如果不正常就会报错,比如我们改动一下: index1.js

assert.equal(baseConfig.entry.index, 'D:/MyGithub/webpack-demo/my-project/builder-webpack/test/smoke/template/src/index/index1.js');

在这里插入图片描述

测试覆盖率实战

JavaScript test coverage made simple. https://istanbul.js.org/

这里使用的是 istanbul。

  1. 如果你是按照老师的课程去的话 npm i istanbul -D,在脚本里添加 test2:
单元测试:"test": "./node_modules/.bin/_mocha",
测试覆盖率:"test2": "istanbul cover ./node_modules/.bin/_mocha",
  1. 当执行 npm run test2 会报错:

在这里插入图片描述

关于这个报错,其实可以参考一下:SyntaxError: missing ) after argument list

在这里插入图片描述

  1. windows下路径要换个写法:
单元测试时用:"test": "./node_modules/.bin/_mocha",
测试覆盖率时用:"test2": "istanbul cover ./node_modules/mocha/bin/_mocha",

这个就不多说了。

  1. 接下来看 istanbul 官网推荐的写法 https://istanbul.js.org/

The nyc command-line-client for Istanbul works well with most JavaScript testing frameworks: tap, mocha, AVA, etc.

用于 istanbul 的 nyc 命令行客户端适用于大多数 JavaScript 测试框架:tap、mocha、AVA 等。

在这里插入图片描述

  1. 所以我们先安装:
npm install --save-dev nyc

在这里插入图片描述

  1. 然后添加脚本:
"nyc": "nyc ./node_modules/.bin/_mocha",
  1. 接下来执行脚本
npm run nyc

在这里插入图片描述

更多也可以参考Using Istanbul With Mocha

在这里插入图片描述
下一节聊聊:持续集成和Travis CI

(完)

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:31:40  更:2021-08-09 10:32:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 18:56:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码