node 单元测试

 

1、rebuild分支下新增目录结构

node 单元测试

血的经历 不要把测试的node模块文件夹命名成node_modules node 单元测试

在测试覆盖率的时候会提示: node 单元测试 意思是没有收集覆盖信息,退出没有写入覆盖信息。然后无法收集测试覆盖率。

所以现在改成modules了

node 单元测试

 

改一下package.json

node 单元测试

"node": "mocha .\\node_test\\test",
"coverage": ".\\node_modules\\.bin\\istanbul cover .\\node_modules\\mocha\\bin\\_mocha node_test\\test"

 

2、编写node 单元测试步骤

 

1、安装mocha

npm install -g mocha

Mocha是一个基于node.js和浏览器的集合各种特性的Javascript测试框架

了解更多:https://mochajs.cn/

 

2、随便写点什么测试

不写也行

简单介绍:使用的断言库是Node自带的Assert

简单例子:demo.test.js

 

3、执行 npm run node

node 单元测试

编译成功 显示如下:

node 单元测试

到这里基本上你可以写一下node单元测试玩玩了 node 单元测试

 

4、测试覆盖率 安装istanbul

npm install --save-dev istanbul 

检验测试用例是否全面,我们需要知道自己的测试覆盖率。

node 单元测试

  • 行覆盖率(line coverage):是否每一行都执行了?
  • 函数覆盖率(function coverage):是否每个函数都调用了?
  • 分支覆盖率(branch coverage):是否每个if代码块都执行了?
  • 语句覆盖率(statement coverage):是否每个语句都执行了?

了解更多:阮一峰代码覆盖率工具 Istanbul 入门教程istanbul

 

5、执行 npm run coverage

node 单元测试

编译成功,显示如下:

node 单元测试

这个时候你会发现多了一个coverage的文件夹,打开coverage\lcov-report\index.html

可以看到

node 单元测试

点击列表中的各项可以查看各个js文件的覆盖情况

 

比如说现在有一个地方分支覆盖率是有问题的 点进去看 node 单元测试

它就会很明确的提示你 哪里还没有测 这时候就可以修改自己的测试用例了

这里的意思就是没有测试各种path.length的情况

改完的结果:

node 单元测试

node 单元测试

亲测好用,赶快来试 node 单元测试