Node.js 如何将node debug cli与Jest一起使用?

Node.js 如何将node debug cli与Jest一起使用?,node.js,jestjs,node-debugger,babel-jest,Node.js,Jestjs,Node Debugger,Babel Jest,如何将简单节点cli/repl调试器与Jest一起使用 使用,但从Node 6.3起已过时/不推荐使用。我还是在节点7.7.4上尝试了推荐的命令: node --debug-brk ./node_modules/.bin/jest --runInBand --no-cache [your_test_file] 但这仅仅取决于以下内容(假设正在等待节点检查器): (节点:13452)弃用警告:节点--已弃用调试。请改用node--inspect。调试器侦听127.0.0.1:5858 我添加了警

如何将简单节点cli/repl调试器与Jest一起使用

使用,但从Node 6.3起已过时/不推荐使用。我还是在节点7.7.4上尝试了推荐的命令:

node --debug-brk ./node_modules/.bin/jest --runInBand --no-cache [your_test_file]
但这仅仅取决于以下内容(假设正在等待节点检查器):

(节点:13452)弃用警告:节点--已弃用调试。请改用node--inspect。调试器侦听127.0.0.1:5858

我添加了警告指定的
--inspect
,但即使如此,在Chrome DevTools中的
调试器
语句上执行也不会停止


对于一个非常简单的用例来说,这似乎过于复杂了。

我发现以下命令可以工作:

node debug./node\u modules/.bin/jest--runInBand--no cache[您的\u测试\u文件]

…但有些古怪的行为。调试器首次停止时,您将看到:

break in node_modules/jest/bin/jest.js:10
  8  */
  9
>10 'use strict';
 11
 12 require('jest-cli/bin/jest');
debug>
显然,Jest总是注入这个断点,以便您有时间打开Chrome DevTools(在我们的例子中不相关,因为我们只使用cli/repl)

使用
c
继续通过此断点,在短时间后(当然没有任何迹象表明事情正在进展),您应该会看到您的断点:

break in webpack/assets/react/components/presentation/Feed/Comments/Comment/commentSpec.jsx:12
 10     var wrapper = (0, _enzyme.shallow)(_react2.default.createElement(_comment2.default, { loading: true }));
 11
>12     debugger;
 13     expect(wrapper.find(_button2.default)).to.have.length(1);
 14   });
 debug>
最后一件奇怪的事情是,您需要键入repl来检查对象,如和中所述


在阅读文档时,所有这些步骤的组合对我来说并不明显,因此我希望这个答案能够帮助某人更快地克服障碍。

从node v8.4开始,代码中的
调试器
关键字对于VM上下文是固定的。参考

1.在Jest代码中键入调试器关键字

describe('Testcase definition', () => {
   it('should be defined with subobjects', () => {
     debugger; // <-- This keyword breaks on Chrome inspect
     expect(true).toBe(true);
   });
});
description('Testcase definition',()=>{
它('应该用子对象定义',()=>{
调试器//