学习mocha初始是根据阮一峰老师的测试框架 Mocha 实例教程进行学习的,感兴趣的同学可以参考该教程进行系统学习。
这里只总结在我学习过程中容易被忽略的地方。
首先,我们的电脑上存在正确的node环境。
先全局安装mocha环境npm install --g mocha
。
我们先从一个基础的加法模块开始了解mocha基本用法,测试例为add.js,具体代码如下
function add(x, y) {
return x + y;
}
module.exports = add;
测试这个加法模块的正确性,需编写测试脚本,add.test.js,如下所示
var add = require('./add.js');
var expect = require('chai').expect;
describe('加法函数的测试', function() {
it('1 加 1 应该等于 2', function() {
expect(add(1, 1)).to.be.equal(2);
});
});
测试脚本中应包括一个或多个 describe
块,每个describe
块应该包括一个或多个it
块。
describe
块称为“测试套件”,表示一组相关的测试,他是一个函数,第一个参数是测试套件的名称(“加法函数的测试”),第二个参数是一个实际执行的函数。
it
块称为“测试用例”,表示一个单独的测试,是测试的最小单位。它也是一个函数,第一个参数是测试用例的名称(“1加1应该等于2”),第二个参数是一个实际执行的函数。
执行该测试脚本时使用mocha add.test.js
即可。add.test.js
为你自己的测试脚本。
执行所有测试脚本
一般来说,我们的测试脚本都会放在test下,所以mocha
命令会执行test文件夹下的测试脚本,但是若test下有子文件夹,子文件夹下存在测试脚本的话,只使用mocha
就不能全部执行了。这时需要使用mocha --recursive
来执行test文件夹下所有测试脚本。执行某一类测试脚本
mocha test/**/*.js
该命令即是执行test下所有文件夹下的.js文件。帮助提示
mocha --h
或者mocha --help
可以看到所有的参数提示,在使用时可参考使用。切换显示方法
默认的,我们测试结果显示方式如下图所示:
是因为默认显示方式为spec格式,使用命令mocha --recursive --reporter tap --growl
可以切换显示方式为tap,同样,你可以将tap换位spec验证显示方式。
- 配置文件
命令mocha --recursive --reporter tap --growl
使用了三个参数来设置显示方式,我们可以在test文件夹下建一个名为mocha.opts
的文件,将这三个参数写入,运行mocha
,则与上面命令方式显示一致。
mocha.opts
内容
recursive
reporter tap
growl
超时设置
若运行时间过长,则可以使用-t 重置超时参数。命令为mocha -t 5000 timeout.text.js
-s或-slow可设置超过该时间执行的部分高亮显示。命令为mocha -t 5000 -s 1000 timeout.test.js
生成报表及网页显示
报表展示:mocha --recursive -R markdown > spec.md
网页展示:mocha --recursive -R doc >spec.html