如何调试Grunt Mocha任务?

时间:2014-09-23 14:14:07

标签: javascript node.js gruntjs webstorm

我正在使用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测试。有什么想法吗?

4 个答案:

答案 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

示例:ChrisWren/grunt-node-inspector

来源:Stackoverflow Question

答案 1 :(得分:2)

最后我能够调试我的mocha任务!感谢您的所有答案和评论,但不幸的是我必须选择自己的答案,因为这是唯一适合我的答案。

感谢这段视频,我发现了我遗失的内容:http://vimeo.com/97561531

基本上这是两件事:

  1. 为grunt的mocha配置添加“debug-brk”选项:

    grunt.initConfig({
        ...
            "options": {
                "mocha": {
                    ...
                    "debug-brk": (grunt.option('debug-brk')) ? "" : 0
                }
            }
    }
    
  2. 配置WebStorm的调试配置如下:

    WebStorm's Debug Config to Halt on debug-brk

答案 2 :(得分:1)

如果您碰巧使用 WebStorm IDE ,您可以设置任务,然后运行或调试它。

您可以在屏幕截图中看到命令grunt jasmine_node_no_coverage的配置。请注意,我在全球范围内安装了grunt。

Configuration of the task in WebStorm

答案 3 :(得分:0)

试试grunt-debug-task

它类似于节点调试器。只需运行grunt debug taskname

即可

我试了一下。它有时会中断,但似乎有效。