學(xué)習(xí)mocha初始是根據(jù)阮一峰老師的測(cè)試框架 Mocha 實(shí)例教程進(jìn)行學(xué)習(xí)的,感興趣的同學(xué)可以參考該教程進(jìn)行系統(tǒng)學(xué)習(xí)。
這里只總結(jié)在我學(xué)習(xí)過(guò)程中容易被忽略的地方。
首先悼尾,我們的電腦上存在正確的node環(huán)境。
先全局安裝mocha環(huán)境npm install --g mocha
湘捎。
我們先從一個(gè)基礎(chǔ)的加法模塊開(kāi)始了解mocha基本用法诀豁,測(cè)試?yán)秊閍dd.js窄刘,具體代碼如下
function add(x, y) {
return x + y;
}
module.exports = add;
測(cè)試這個(gè)加法模塊的正確性窥妇,需編寫(xiě)測(cè)試腳本,add.test.js娩践,如下所示
var add = require('./add.js');
var expect = require('chai').expect;
describe('加法函數(shù)的測(cè)試', function() {
it('1 加 1 應(yīng)該等于 2', function() {
expect(add(1, 1)).to.be.equal(2);
});
});
測(cè)試腳本中應(yīng)包括一個(gè)或多個(gè) describe
塊活翩,每個(gè)describe
塊應(yīng)該包括一個(gè)或多個(gè)it
塊烹骨。
describe
塊稱(chēng)為“測(cè)試套件”,表示一組相關(guān)的測(cè)試材泄,他是一個(gè)函數(shù)沮焕,第一個(gè)參數(shù)是測(cè)試套件的名稱(chēng)(“加法函數(shù)的測(cè)試”),第二個(gè)參數(shù)是一個(gè)實(shí)際執(zhí)行的函數(shù)拉宗。
it
塊稱(chēng)為“測(cè)試用例”峦树,表示一個(gè)單獨(dú)的測(cè)試,是測(cè)試的最小單位旦事。它也是一個(gè)函數(shù)魁巩,第一個(gè)參數(shù)是測(cè)試用例的名稱(chēng)(“1加1應(yīng)該等于2”),第二個(gè)參數(shù)是一個(gè)實(shí)際執(zhí)行的函數(shù)姐浮。
執(zhí)行該測(cè)試腳本時(shí)使用mocha add.test.js
即可谷遂。add.test.js
為你自己的測(cè)試腳本。
執(zhí)行所有測(cè)試腳本
一般來(lái)說(shuō)卖鲤,我們的測(cè)試腳本都會(huì)放在test下肾扰,所以mocha
命令會(huì)執(zhí)行test文件夾下的測(cè)試腳本,但是若test下有子文件夾蛋逾,子文件夾下存在測(cè)試腳本的話(huà)集晚,只使用mocha
就不能全部執(zhí)行了。這時(shí)需要使用mocha --recursive
來(lái)執(zhí)行test文件夾下所有測(cè)試腳本区匣。執(zhí)行某一類(lèi)測(cè)試腳本
mocha test/**/*.js
該命令即是執(zhí)行test下所有文件夾下的.js文件甩恼。幫助提示
mocha --h
或者mocha --help
可以看到所有的參數(shù)提示,在使用時(shí)可參考使用沉颂。切換顯示方法
默認(rèn)的条摸,我們測(cè)試結(jié)果顯示方式如下圖所示:
是因?yàn)槟J(rèn)顯示方式為spec格式,使用命令mocha --recursive --reporter tap --growl
可以切換顯示方式為tap铸屉,同樣钉蒲,你可以將tap換位spec驗(yàn)證顯示方式。
- 配置文件
命令mocha --recursive --reporter tap --growl
使用了三個(gè)參數(shù)來(lái)設(shè)置顯示方式彻坛,我們可以在test文件夾下建一個(gè)名為mocha.opts
的文件顷啼,將這三個(gè)參數(shù)寫(xiě)入,運(yùn)行mocha
昌屉,則與上面命令方式顯示一致钙蒙。
mocha.opts
內(nèi)容
recursive
reporter tap
growl
超時(shí)設(shè)置
若運(yùn)行時(shí)間過(guò)長(zhǎng),則可以使用-t 重置超時(shí)參數(shù)间驮。命令為mocha -t 5000 timeout.text.js
-s或-slow可設(shè)置超過(guò)該時(shí)間執(zhí)行的部分高亮顯示躬厌。命令為mocha -t 5000 -s 1000 timeout.test.js
生成報(bào)表及網(wǎng)頁(yè)顯示
報(bào)表展示:mocha --recursive -R markdown > spec.md
網(wǎng)頁(yè)展示:mocha --recursive -R doc >spec.html