使用节点调试器调试ES6 Mocha测试

Debugg ES6 Mocha tests with node-debugger

本文关键字:ES6 Mocha 测试 调试 调试器 节点      更新时间:2023-09-26

我已经建立了一个ES6-Babel项目,一切都很好。我用摩卡做测试。现在,我希望能够在运行测试的同时运行调试器。这就是我迄今为止所做的:

npm install -g node-inspector
npm install -g babel-register

创建了一个名为babel-hook.js 的文件

require('babel/register')({
  stage: 1,
  sourceMap: 'inline',
});

现在我在一个控制台上运行:

node-inspector

打开Chrome

然后从项目根运行:

mocha --debug-brk test/my-test-file.js

然后我在测试中设置了一个断点:

当我点击F8时,我得到以下错误:

/Users/h/Documents/code/js/test/my-test-file.js:1
(function (exports, require, module, __filename, __dirname) { import { assert } from 'chai';
                                                              ^^^^^^
SyntaxError: Unexpected token import
...

现在,我缺少什么来让它发挥作用???

您可能想要mocha的--compilers标志,它指定如何编译输入文件。例如https://babeljs.io/docs/setup/#installation给出了的示例

mocha --compilers js:babel-register

此外,尝试在不使用--debug-brk的情况下运行测试,以帮助隔离断点是否是问题所在,或者它是否是mocha(这里描述的解决方案是针对后者的)。

最后,如果这不起作用,您可能会在非全局安装babel-register(没有-g标志到npm install)时获得更好的结果,如文档所示:https://babeljs.io/docs/usage/require/