TypeScript Mocha测试的Vscode断点

时间:2020-05-17 12:49:37

标签: node.js typescript visual-studio-code mocha ts-node

我已经开始使用TypeScript开发Node / ExpreeJS项目。 我应该注意,我不是直接运行节点。我正在docker中运行节点,但是没有任何理由认为这将是一个问题。

我正在使用vscode作为编辑器,并尝试为Mocha测试配置调试启动配置。

我的启动配置是

{
    "type": "node",
    "request": "launch",
    "name": "SK - Mocha Tests",
    "cwd": "${workspaceRoot}",
    "runtimeExecutable": "make",
    "runtimeArgs": [
        "test-brk"
    ],
    "port": 9321,
    "console": "integratedTerminal",
    "internalConsoleOptions": "neverOpen",
    "protocol": "inspector",
    "sourceMaps": true,
}

make test-brk命令仅映射到在容器内执行docker exec的{​​{1}}命令。

我的package.json包含npm run test-brk的脚本定义

test-brk

从vscode运行"test-brk": "mocha --require source-map-support/register --require node_modules/ts-node/register --inspect-brk=0.0.0.0:9222 --debug-brk --exit test/**/*.spec.ts"调试任务将启动Mocha并按预期运行测试。 如下面的输出所示,检查服务器已启动,vscode调试器成功连接。

SK - Mocha Tests

但是没有遇到断点。 我已经设置了应用程序TS源和测试TS源。 测试运行时,断点显示为灰色并显示

断点被忽略,因为未找到生成的代码(源映射问题?)

我知道这是源TS和正在执行测试的JS之间的源映射问题。 如上所述,我将ts-node与Mocha一起使用似乎出现了问题,因为ts-node不会生成供vscode读取的源映射文件。 ts-node/issues/46中对此进行了描述,但是该问题没有解决方案。它最终链接到vscode-chrome-debug-core/issues/533,后者报告它在vscode的先前版本中已修复。

还有vscode/issues/3144建议将TS测试转换为JS然后执行JS ..但这不允许调试源TS。

如果能为我指出正确的方向,我将不胜感激。

0 个答案:

没有答案