node 单元测试
1、rebuild分支下新增目录结构
血的经历 不要把测试的node模块文件夹命名成node_modules
在测试覆盖率的时候会提示: 意思是没有收集覆盖信息,退出没有写入覆盖信息。然后无法收集测试覆盖率。
所以现在改成modules了
改一下package.json
"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测试框架
2、随便写点什么测试
不写也行
简单介绍:使用的断言库是Node自带的Assert
简单例子:demo.test.js
3、执行 npm run node
编译成功 显示如下:
到这里基本上你可以写一下node单元测试玩玩了
4、测试覆盖率 安装istanbul
npm install --save-dev istanbul
检验测试用例是否全面,我们需要知道自己的测试覆盖率。
- 行覆盖率(line coverage):是否每一行都执行了?
- 函数覆盖率(function coverage):是否每个函数都调用了?
- 分支覆盖率(branch coverage):是否每个if代码块都执行了?
- 语句覆盖率(statement coverage):是否每个语句都执行了?
了解更多:阮一峰代码覆盖率工具 Istanbul 入门教程、istanbul
5、执行 npm run coverage
编译成功,显示如下:
这个时候你会发现多了一个coverage的文件夹,打开coverage\lcov-report\index.html
可以看到
点击列表中的各项可以查看各个js文件的覆盖情况
比如说现在有一个地方分支覆盖率是有问题的 点进去看
它就会很明确的提示你 哪里还没有测 这时候就可以修改自己的测试用例了
这里的意思就是没有测试各种path.length的情况
改完的结果:
亲测好用,赶快来试