首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用节点检查器调试远程mocha.js测试?

用节点检查器调试远程mocha.js测试?
EN

Stack Overflow用户
提问于 2015-05-06 17:21:48
回答 2查看 582关注 0票数 4

我在一台远程计算机上有一个测试文件,我想用node-inspector遍历它。因此,在远程计算机(Vagrantfile文件)上:

代码语言:javascript
复制
node-inspector &
mocha --debug-brk foo.test.js

然后,在我的开发机器上打开金丝雀,然后转到:

代码语言:javascript
复制
http://127.0.0.1:8080/debug?ws=127.0.0.1:8080&port=5858

但是,我无法调试我的测试,因为调试器将在node_modules/mocha/bin/_mocha的第一行中断,并且我的测试文件在选项卡中不可见

我尝试在_mocha中设置一个断点,在第398项

代码语言:javascript
复制
runner = mocha.run(program.exit ? exit : exitLater);

但是,当我试图“进入”时,要看到run函数执行,它不会介入。我可以在控制台中看到输出,所以它确实执行了。如果我设置了一个断点函数,它就不会在那里崩溃。

此外,测试文件从未出现在“源”选项卡中,因此我无法在其中设置断点。我还尝试向它添加一个debugger语句,但它仍然没有中断。

如何使节点检查器显示测试文件,并逐步执行它?

代码语言:javascript
复制
node v0.12.0
node-inspector v0.10.0
mocha v2.2.4
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-14 16:26:06

其实有两个问题:

  1. 断点未受尊重
  2. 测试文件不可见

第一个问题是在最近发布的node-inspector@v0.10.1中修复的。因此,断点在任何地方都会受到尊重。

还有第二个问题。正如@JMM所说,“源”选项卡中的文件列表是动态的,当进程中断时,测试文件不会出现在那里。我最后所做的是在测试函数运行之前设置一个断点,在mocha/lib/runnable.js#266中,在这一行中:

代码语言:javascript
复制
var result = fn.call(ctx);

fn是测试函数。一旦进入测试文件,测试文件将出现在Sources选项卡中,调试器的游标将位于测试函数的第一行。

票数 1
EN

Stack Overflow用户

发布于 2015-05-06 18:48:32

我经常遇到这种情况,我不知道是否有更好的解决方案(如果有,我会很高兴听到它),但我发现我必须让调试器提前到可以知道我想调试的其他文件的程度。如果没有看到更多您的代码,我就无法给出更具体的建议,说明应该在哪里前进,但请试着找出测试文件将在哪些地方加载到可用的源文件中,并前进到那里。随着代码的运行,它将逐渐向源面板添加更多的文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30083543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档