有没有人有任何想法,如果这是可能的?节点检查器的大部分示例似乎都适用于调试被调用的网页。我希望能够调试茉莉花节点测试。使用节点检查器调试茉莉节点测试
回答
我最后写一个小UTIL称为切换:
require('tty').setRawMode(true);
var stdin = process.openStdin();
exports.toggle = function(fireThis)
{
if (process.argv.indexOf("debug")!=-1)
{
console.log("debug flag found, press any key to start or rerun. Press 'ctrl-c' to cancel out!");
stdin.on('keypress', function (chunk, key) {
if (key.name == 'c' && key.ctrl == true)
{
process.exit();
}
fireThis();
});
}
else
{
console.log("Running, press any key to rerun or ctrl-c to exit.");
fireThis();
stdin.on('keypress', function (chunk, key) {
if (key.name == 'c' && key.ctrl == true)
{
process.exit();
}
fireThis();
});
}
}
你可以将其放到你的单元测试,如:
var toggle = require('./toggle');
toggle.toggle(function(){
var vows = require('vows'),
assert = require('assert');
vows.describe('Redis Mass Data Storage').addBatch({
....
然后运行你的测试,如:节点--debug MYFILE .js调试。如果您运行调试切换将等待,直到你什么,但ctrl-c。 Ctrl-c退出。你也可以重新运行,这很好。
w0000t。
我没有受过教育的猜测是,你需要修补茉莉花,我相信它产生了一个新的节点进程或运行测试时的东西,而这些新进程需要启用调试功能。
我也有类似的愿望,并设法使用Eclipse作为调试expressso工作: http://groups.google.com/group/nodejs/browse_thread/thread/af35b025eb801f43
...但我意识到:如果我需要逐步完成我的代码来了解它,我可能需要重构代码(可能会更易于测试),或将我的测试分解成更小的单元。
你的测试是你的调试器。
总之,刚刚调试茉莉节点:
node --debug-brk node_modules/jasmine-node/lib/jasmine-node/cli.js spec/my_spec.js
如果你看一下jasmine-node
脚本的来源,它只是调用cli.js
,我发现我可以调试脚本就好了。
我想使用节点检查器来调试CoffeeScript测试。只需添加--coffee
开关就可以很好地工作,例如
node --debug-brk node_modules/jasmine-node/lib/jasmine-node/cli.js --coffee spec/my_spec.coffee
实际上,这似乎工作正常。加载调试器后按下'恢复脚本执行'按钮。这会将您带到第一个断点。我不确定为什么我的第一次测试退出了。 – 2013-08-17 15:59:53
重要的是不要指定--autotest命令行选项,因为它使默认情况下不可调试的jasmine-node spawn子进程没有这个选项,它工作的很好 – xorcus 2015-02-01 21:46:20
如果它帮助别人 - 我想用更新的节点检查器: 'node-debug /usr/local/lib/node_modules/jasmine-node/lib/jasmine-node/cli.js spec /' – 2015-04-22 21:49:27
- 1. 节点检查器调试
- 2. 调试ES6使用节点检查或通天节点调试
- 3. 失败的测试茉莉节点不显示
- 4. 茉莉花的角度测试无法比较html节点
- 5. 茉莉花节点没有显示测试结果
- 6. 茉莉花节点和竹子 - 测试失败
- 7. 茉莉花节点需求*
- 8. 使用节点调试调试节点js
- 9. 如何测试Knockout.js点击茉莉
- 10. 使用节点检查器调试脚本不起作用
- 11. 无法调试节点子进程(使用节点本机调试器)
- 12. 如何使用节点检查器调试nodejs后端?
- 13. 奇怪`require`在茉莉节点行为
- 14. 测试ASYN调用抛出节点JS
- 15. 功能调用茉莉花测试
- 16. 模拟使用Phantomjs和测试程序按钮点击茉莉
- 17. Superagent和Mocha测试节点
- 18. 使用摩卡和嵌套回调测试节点服务器
- 19. 茉莉花测试removeEventListener
- 20. 茉莉花循环测试
- 21. 测试角$ Q茉莉花
- 22. 茉莉花TypeScript测试角
- 23. 茉莉花链式测试
- 24. 如何测试茉莉花
- 25. 错误而测试使用茉莉
- 26. 角JS单元测试使用茉莉
- 27. 测试方法使用茉莉花
- 28. 测试Backbone.js的查看与茉莉
- 29. Node.JS调试节点检查器是否单步执行?
- 30. 如何在开始调试后终止节点检查器
显然不是真的。看伊恩的答案。 – 2013-08-17 16:00:37
我也相信node-inspector不能与jasmine-node一起工作,因为jasmine-node会产生子进程,而node-inspector不会处理这个。搜索解决方案给出的提示是,process.debug_port必须设置为每个子进程的唯一值,但这需要篡改茉莉花节点源代码,我猜 – xorcus 2015-02-01 21:13:26