在vscode里配置mocha进行node代码测试

我的未来我决定 提交于 2019-12-29 13:01:37

关于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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!