關於mocha
Mocha是一個能夠運行在Node和瀏覽器中的多功能的JavaScript測試框架,它讓異步測試簡單且有趣。Mocha連續地運行測試,並給出靈活而精確的報告,同時能夠將錯誤精確地映射到測試用例上。它託管在GitHub上。
開始配置
項目中需要進行單元測試,而我常用的開發工具是vscode,於是想在vscode裏實現調試時就可以進行測試。
第一步:
安裝mocha,這裏我使用的是作爲開發依賴安裝在項目中(全局安裝mocha沒學會怎麼在vscode裏配置)
$ npm install --save-dev mocha
第二步:點擊vscode調試菜單-->打開配置
第三步:點擊右下角的“添加配置”按鈕,並選擇“Mocha測試”
默認的配置是這樣的:
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"-u",
"tdd",
"--timeout",
"999999",
"--colors",
"${workspaceFolder}/test"
],
"internalConsoleOptions": "openOnSessionStart",
"skipFiles": [
"<node_internals>/**"
]
}
最終配置
然後實際使用下面的測試代碼進行運行時,發現會有如下問題:
- 運行測試時報錯:ReferenceError: describe is not defined
- test目錄下面的子目錄不會被測試到
第一個問題,需要把"tdd"換成“bdd”即可(參看資料:https://stackoverflow.com/questions/28400459/referenceerror-describe-is-not-defined-nodejs#)
第二個問題,需要把最後一個參數改爲:"${workspaceFolder}/test/**/*.js"即可
最終的配置爲:
……
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"-u",
"bdd",// set to bdd, not tdd
"--timeout",
"999999",
"--colors",
"--recursive",
"${workspaceFolder}/test/**/*.js"
],
"internalConsoleOptions": "openOnSessionStart",
"skipFiles": [
"<node_internals>/**"
]
},
……
測試示例:
ps:
如果需要使用expect斷言庫,需要在test文件裏手動導入,即:
const expect = require('chai').expect;
不然也會報錯:ReferenceError: expect is not defined