我正在使用WebStorm来执行繁琐的任务。调试器在Gruntfile.js文件中的断点处成功停止,但不在我的任务文件中停止。
在Gruntfile.js中我注册了这样一个任务:
grunt.initConfig({
... configuration ...
});
grunt.registerTask('myTask', ['mocha:myTask']);
当我在测试'myTask'的相应js文件中设置断点时,它不会停止。 我怎样才能调试grunt测试?
所以我尝试了所有可能的解决方案,但它并没有解决我的问题!
我能够调试grunt脚本本身,这是调试器实际停止的地方(在WebStorm或node-inspector中)。此外,Gruntfile.js中的断点正在运行。
问题是,我无法调试实际的Grunt任务本身,用grunt注册如下: grunt.registerTask('myTask',['mocha:myTask']);
我也可以调试mocha测试本身。但是我想调试一个从grunt任务运行器调用的mocha测试。有什么想法吗?
答案 0 :(得分:6)
要在debug中运行grunt任务,您需要将grunt任务脚本传递给node-inspector:
node-debug $(Path \AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt) task
在您的任务中添加debugger;
行。然后node-inspector
将打开带有调试工具的浏览器。
此链接可帮助您了解其工作 grunt-node-inspector
答案 1 :(得分:2)
最后我能够调试我的mocha任务!感谢您的所有答案和评论,但不幸的是我必须选择自己的答案,因为这是唯一适合我的答案。
感谢这段视频,我发现了我遗失的内容:http://vimeo.com/97561531
基本上这是两件事:
为grunt的mocha配置添加“debug-brk”选项:
grunt.initConfig({
...
"options": {
"mocha": {
...
"debug-brk": (grunt.option('debug-brk')) ? "" : 0
}
}
}
配置WebStorm的调试配置如下:
答案 2 :(得分:1)
如果您碰巧使用 WebStorm IDE ,您可以设置任务,然后运行或调试它。
您可以在屏幕截图中看到命令grunt jasmine_node_no_coverage
的配置。请注意,我在全球范围内安装了grunt。
答案 3 :(得分:0)