在vscode裏配置mocha進行node代碼測試

關於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>/**"
    ]
}

最終配置

然後實際使用下面的測試代碼進行運行時,發現會有如下問題:

  1. 運行測試時報錯:ReferenceError: describe is not defined
  2. 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章