unit-testing - 如何使用 Visual Studio Code 中的 Mocha 调试用 Typescript 编写的单元测试

标签 unit-testing typescript mocha.js visual-studio-code

我写了一个 Typescript 库。单元测试也是使用 Mocha 框架用 Typescript 编写的。我想直接执行单元测试而不用编译成 javascript。 这适用于此命令:

./node_modules/mocha/bin/mocha  ./test/*.test.ts  --require ts-node/register

我尝试使用以下启动设置从 Visual Studio Code 调试单元测试:

{
    "type": "node",
    "request": "launch",
    "name": "Mocha Tests",
    "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
    "args": [
        "--require",
        "ts-node/register",
        "${workspaceRoot}/test/*.test.ts"
    ],
    "internalConsoleOptions": "openOnSessionStart"
}

这样我就可以从 VS Code 调试 Mocha 本身,但不能调试单元测试。 Mocha 为测试生成单独的进程,调试器无法自动附加到子进程。

从 Visual Studio Code 调试 Typescript 单元测试的正确方法是什么?

最佳答案

将此线程更新为适合我们的配置( self 注意)。

  • https://stackoverflow.com/a/44999572/147530 中的--compilers 选项已弃用
  • ts:ts-node/register 给出错误
  • 添加“${relativeFile}”还会在位置 6 处给出错误 Unexpected token/in JSON,因为“${relativeFile}”解析为 .vscode/launch.json 。

更新配置

{            
            "name": "mocha tests",
            "type": "node",
            "protocol": "inspector",
            "request": "launch",
            "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
            "stopOnEntry": false,
            "args": [ "-r", "ts-node/register", "${workspaceRoot}/test/**/*.spec.ts", "--no-timeouts"],
            "cwd": "${workspaceRoot}"
}

关于unit-testing - 如何使用 Visual Studio Code 中的 Mocha 调试用 Typescript 编写的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43014042/

相关文章:

javascript - emberjs - 测试 - 单击带有链接助手的链接

c++ - C++ 中的单元测试和测试代码覆盖率

unit-testing - CakePHP fatal error : Class 'ErrorHandler' not found

javascript - 使用 Mocha 进行 Javascript 测试时 assert.equal 和 assert.deepEqual 之间的区别?

typescript - 在 typescript 中使用 polymer

typescript - 从另一个文件中导出一个 TypeScript 类,而不是在其中定义的

javascript - 如何在使用 Selenium 框架和 Mocha 的常规测试的同时在浏览器上下文中运行测试?

unit-testing - 如何避免在创建用户的Salesforce测试中出现MIXED_DML_OPERATION错误

python - 在 python 单元测试中断言 `is`

html - Angular 中的数据列表