首页 文章

使用Eclipse和Chrome开发人员工具调试AngularJS Protractor E2E Testfile

提问于
浏览
0

我已经使用Chromium JavaScript远程调试器设置了Eclipse kepler(v4.3.2),以便能够远程调试node.js进程(连接到V8Debugger) . 然后我开始量角器了

node --debug-brk protractor.js conf.js

其中protractor.js是node_module量程器目录的bin文件夹中的shellscript文件,缺少启动节点的第一行 . 因此,节点在调试模式下启动,侦听端口5858以进行调试器连接 . 在Eclipse中,我已经配置了一个独立的V8 VM调试器配置,用于连接本地端口5858.连接到node.js服务器后,它会访问protractor.js文件中的第一个断点 . 但是当恢复/继续执行时,它会在控制台内重复“调试器侦听端口5858”并且不再继续测试 .

有人能告诉我这有什么问题吗?

此致,塞巴斯蒂安

1 回答

  • 1

    好的,这里是答案:How to debug Node.JS child forked process?

    简而言之:这是node.js v0.10中的一个错误,它无法调试子进程 .

    但是仍然可以调试子进程:

    这里的修正是我的解决方案:更改launcher.js中的代码以使用 --debug-brk 分叉子进程!并给它一个独特的端口,如上面发布的链接中所述 . 然后,您需要在 childFork.process.send('run',...) 函数之前设置断点(或在代码中放置 debugger; ),以阻止代码将消息发送到分叉进程 . 这是必需的,因为您已通过设置 --debug-brk 来停止运行子进程 . 所以连接到第二个进程并点击继续 . 您将看到childprocess(runFromLauncher)将一直等到收到消息'run' . 然后切换回第一个调试器,点击运行并让它将消息发送到子进程 . 您将看到,如果在runFromLauncher.js中的 process.on.message(...) 函数内设置断点,则可以再次单步执行代码 .

相关问题