【问题标题】:Debug AngularJS Protractor E2E Testfile with Eclipse and Chrome Developer Tools使用 Eclipse 和 Chrome 开发者工具调试 AngularJS Protractor E2E 测试文件
【发布时间】:2014-05-19 11:29:11
【问题描述】:

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

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

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

谁能告诉我这是什么问题?

问候, 塞巴斯蒂安

【问题讨论】:

标签: eclipse node.js debugging google-chrome-devtools protractor


【解决方案1】:

好的,答案如下: How to debug Node.JS child forked process?

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

但仍然可以调试子进程:

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

【讨论】:

  • 我使用了@davidforneron 的解决方法并扩展了量角器的launcher.js。但我仍然坚持没有测试正在运行,它没有进入 runner.js (没有创建 Runner 对象?)。我将尝试获取更多详细信息,并在对我来说足够清楚时提出一个新问题:-)。
猜你喜欢
  • 2016-02-27
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
相关资源
最近更新 更多