Webstorm中运行茉莉花testing停止跟踪与退出码0

我通过grunt在我的node.js应用程序中运行jasminetesting。 我已经将Grunt grunt test添加到了Webstorm的运行configuration中。

在“运行/debuggingconfiguration”中,“Grunt Test”具有以下属性:节点解释器( node.exe中的node.exe ),工作目录(项目位置),JavaScript文件(grunt binary)以及应用程序参数名称)。

configuration正常工作,但停止打印完整的茉莉花输出。 有时在打印任何输出之前,大多数情况下经过茉莉花日志的某个部分之后,而是在testing总结或错误细节之前。 总是输出的最后一行是

 Process finished with exit code 0 

当我使用Webstorm命令并在控制台中手动运行它时,它工作正常,并且始终打印完整输出:

 "C:\Program Files\nodejs\node.exe" C:\...\node_modules\grunt-cli\bin\grunt test 

我的testing包括asynchronous的情况下,所以大约需要20秒来运行它们。 我注意到,每个尝试通过Webstorm运行testing打印一点点输出。 第一次尝试结束没有任何,但十后进一步我得到完整的输出与testing总结。

已知的问题,请参阅http://youtrack.jetbrains.com/issue/WEB-1926和讨论stackoverflow( 摩卡+ webstorm – 错误消息中断 )

为了解决这个问题,我们可以直接通过jasmine-node命令运行茉莉花testing(跳过grunt)。

我们必须根据“Node.js”pre-conf设置新的“运行/debuggingconfiguration”。

  • 节点解释器(像往常一样):

     C:\Program Files\nodejs\node.exe 
  • 工作目录:项目根目录,

  • JavaScript文件:

     node_modules\grunt-jasmine-node\node_modules\jasmine-node\lib\jasmine-node\cli.js 

    这是我的情况(使用grunt-jasmine-node)。 我们也可以提供全局安装的jasmine-node的cli.jspath。

  • 应用程序variables

     --verbose src/test/js 

    当然,最后一个是我的项目中testing目录的path。 这里我们可以指定文件列表或者使用其他的jasmine-node命令和参数。

process.exit()不等待stdout 。 你应该用一个时间表推迟退出电话,就是这样。