2

我通过 grunt 在我的 node.js 应用程序中运行 jasmine 测试。我已经添加grunt test到 Webstorm 的运行配置中。

在“运行/调试配置”中,“Grunt 测试”指定了以下属性:节点解释器(node.exe在程序文件中)、工作目录(项目位置)、JavaScript 文件(grunt 二进制文件)和应用程序参数(test- grunt 任务名称)。

配置正常工作,但没有打印完整的茉莉花输出就停止了。有时在打印任何输出之前,通常在 jasmine 日志的某些部分之后,但在测试摘要或错误详细信息之前。总是输出的最后一行是

Process finished with exit code 0

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

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

我的测试包括异步案例,因此运行它们大约需要 20 秒。我注意到每次通过 Webstorm 运行测试的尝试都会打印更长的输出。第一次尝试没有任何结果,但再过十次后,我得到了带有测试摘要的完整输出。

4

3 回答 3

1

已知问题,请参阅http://youtrack.jetbrains.com/issue/WEB-1926和关于 stackoverflow 的讨论(mocha + webstorm - 错误消息已损坏

于 2013-11-14T15:16:42.177 回答
0

为了解决问题中描述的情况,我们可以通过 jasmine-node 命令直接运行 jasmine 测试(跳过 grunt)。

我们必须基于“Node.js”预配置设置新的“运行/调试配置”。

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

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

  • JavaScript 文件:

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

    这是针对我的情况(使用 grunt-jasmine-node)。我们还可以提供cli.js全局安装的 jasmine-node 的路径。

  • 应用变量:

    --verbose src/test/js
    

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

于 2013-11-15T10:35:19.450 回答
0

process.exit()不等待的问题stdout。您应该推迟退出呼叫,仅此而已。

于 2015-02-04T00:39:00.990 回答