在Webstorm 11中使用Jasmine运行/调试Node.js测试用例

10

我安装了Webstorm 11,并希望运行使用Jasmine实现的测试(用于node.js应用程序)。 然而,这并不容易。我可以在命令行中键入'jasmine'命令来运行测试,但在这种情况下,我无法调试代码。 因此,是否有一种方法可以配置Webstorm以按照应有的方式处理jasmine规范?


为什么不使用https://www.jetbrains.com/webstorm/help/enabling-javascript-unit-testing-support.html? - timothyclifford
3个回答

11

好的,目前没有人回答,我将尝试提供我的版本:

这个流程将允许从Webstrom运行jasmine测试套件并调试测试用例

  1. 安装Jasmine(可以本地或全局安装)
  2. 在项目文件夹中创建名为“spec/support”的文件夹。在该文件夹中放置jasmine.json。

    测试配置示例:

{
"spec_dir": "tests",
"spec_files": [
    "**/*[sS]pec.js"
],
"helpers": [
    "helpers/**/*.js"
]
}
  • 在 Webstorm 中创建 node.js 配置

  • 在此配置中选择源文件 - jasmine 可执行文件(对于本地安装的 jasmine,它将是'node_modules\jasmine\bin\jasmine.js'

  • 这样你就准备好了。然而在当前时刻,当尝试调试此配置时,它会失败并显示以下错误:

    Cannot stop on breakpoint due to internal error org.jetbrains.v8.V8CommandProcessor$1:

    如果你遇到这个问题 - 你需要更改 Webstom 的配置,并设置以下设置:

    -Dnodejs.debugger.use.jb.support=false 有关更多详细信息,请参见这里:

    这样可以让你运行 jasmine 测试并进行调试。 然而,仍然有一些事情无法实现:

    1. 运行单个测试用例
    2. 使用右键单击按钮和 Run 命令从菜单中运行单个测试用例

    Jetbrains,请您修复这个问题吧。我3年前开始在 Webstorm 中尝试使用 node,自那以后已经有数十个版本,但仍然没有一个好的方法来运行测试。这太荒谬了。


    0

    Jasmine使用JSTestDriver,WebStorm 11自带: https://www.jetbrains.com/webstorm/help/enabling-javascript-unit-testing-support.html

    此页面还详细介绍了如何在JSTestDriver中添加Jasmine: https://www.jetbrains.com/webstorm/help/preparing-to-use-jstestdriver-test-runner.html

    在高层次上,您需要:

    1. 从JetBrains插件库安装JSTestDriver
    2. 将其配置为WebStorm JavaScript库(https://www.jetbrains.com/webstorm/help/configuring-javascript-libraries.html#configure
    3. 打开jsTestDriver.conf并在其中输入以下代码:

    load:

    lib/jasmine/jasmine.js

    lib/jasmine-jstd-adapter/JasmineAdapter.js


    1
    Webstrom默认不包含JsTestDriver,您需要安装额外的插件才能使用它。然而,看起来JsTestDriver本身是一个被放弃的项目,已经很长时间没有维护了(最后一次发布似乎是3-4年前),也不清楚它是否支持node.js或仅适用于客户端js。因此,考虑到所有这些问题,我认为这不是一个选项。 - Ph0en1x
    请查看Karma文档,它也支持Jasmine:https://www.jetbrains.com/webstorm/help/preparing-to-use-karma-test-runner.html - timothyclifford
    2
    再次强调,Karma是一个客户端JS测试运行器。它适用于Angular,但不适用于Node.js。 - Ph0en1x

    0

    WebStorm不直接管理测试运行。这项工作由测试运行器完成。WebStorm支持多个测试运行器-Mocha,Karma,JsTestDriver,nodeunit。它们中的大多数都可以执行Jasmine测试


    我认为你是错的。但也许不是。你能给我提供一个算法吗 - 我如何使用mocha或nodeunit运行NODE.JS jasmine基础测试用例(只有它们可以运行服务器端js测试,karma和JsTestDriver仅适用于客户端)。我不想要任何特别的东西 - 只想点击鼠标右键并运行单个测试用例。对于“世界上最聪明的JavaScript IDE”来说应该很容易,对吧? - Ph0en1x

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接