如何使用Jest使用节点debuggingcli?
我怎样才能用Jest使用简单的节点cli / repldebugging器?
Jest文档使用节点检查器 ,但是从6.3节开始已经过时/不推荐使用。 我在节点7.7.4上尝试了推荐的命令:
node --debug-brk ./node_modules/.bin/jest --runInBand --no-cache [your_test_file]
但是,这只是挂在下面(假设等待节点检查员):
(node:13452) DeprecationWarning: node --debug is deprecated. Please use node --inspect instead. Debugger listening on 127.0.0.1:5858
我添加了 – 警告指定的,但即使如此,执行不会停止在我的debugger
语句在Chrome开发工具。
这对于一个非常简单的用例似乎过于复杂。
我发现以下命令的作品:
node debug ./node_modules/.bin/jest --runInBand --no-cache [your_test_file]
…但有一些古怪的行为。 当debugging器第一次停止时,您将看到:
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 Debugger和使用节点的内置 debugging器 检查variables所描述的那样?
所有这些步骤的组合在阅读文档时并不明显,所以我希望这个答案能够帮助某人更快地完成这个步骤。
在节点v8.4中,代码中的debugger
关键字针对VM上下文是固定的。 参考这个git评论 。
1. 在你的Jest代码中inputdebugger关键字 :
describe('Testcase definition', () => { it('should be defined with subobjects', () => { debugger; // <-- This keyword breaks on Chrome inspect expect(true).toBe(true); }); });
-
运行命令:
节点–inspect-brk –inspect ./node_modules/.bin/jest -i tests / mytest.test.js
-
现在在Chrome上打开 chrome:// inspect /#设备 。 瞧!