【问题标题】:Run/debug node.js testcases with jasmine in Webstorm 11在 Webstorm 11 中使用 jasmine 运行/调试 node.js 测试用例
【发布时间】:2015-12-09 11:09:25
【问题描述】:

我安装了 Webstorm 11 并想运行我用 Jasmine 实现的测试(针对 node.js 应用程序)。 然而,要做到这一点并不容易。我可以只输入命令行 'jasmine' 命令并运行测试,但在这种情况下,我无法调试代码。 那么有没有办法配置 Webstorm 来处理应有的茉莉花规格?

【问题讨论】:

标签: javascript node.js unit-testing jasmine webstorm


【解决方案1】:

好的,虽然目前没有人回答,但我会尝试提供我的版本: 此流程将允许从 Webstrom 运行 jasmine testute 并调试测试用例

  1. 安装 jasmine(本地或全局)
  2. 在项目文件夹中创建文件夹 'spec/support' 在此文件夹中放置 jasmine.json

    测试配置示例:

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

  4. 在此配置中选择源文件 - 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更多详情请查看there:

因此,这允许您运行 jasmine 测试并对其进行调试。但是,该解决方案仍有一些无法做到的事情:

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

Jetbrains,如果您阅读此内容 - 请已修复此问题。 3 年前,我开始在 Webstorm 中使用 node,从那一刻起,数十个版本仍然没有运行测试的好方法。这太荒谬了。

【讨论】:

    【解决方案2】:

    Jasmine 可与 WebStorm 11 开箱即用的 JSTestDriver 配合使用: 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 并在其中键入以下代码:

    加载:

    lib/jasmine/jasmine.js

    lib/jasmine-jstd-adapter/JasmineAdapter.js

    【讨论】:

    • JsTestDriver 默认不随 Webstrom 提供,您需要安装额外的插件才能使用它。然而,看起来 JsTestDriver 本身是一个不再维护的废弃项目(看起来最后一个版本是 3-4 年前)并且不清楚它是否支持 node.js 或者它仅适用于客户端 js。因此,对于所有这些问题,我认为这不是一个选择。
    • 看看@Karma docs,这也支持Jasime:jetbrains.com/webstorm/help/…
    • 再一次,karma - 是一个客户端 js 测试运行器。它适用于 Angular,但不适用于 node.js
    【解决方案3】:

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

    【讨论】:

    • 我认为你错了。但也许不是。你能给我提供算法吗 - 我如何使用 mocha 或 nodeunit 运行 NODE.JS jasmine 基本测试用例(只有它们可以运行服务器端 js 测试,业力和 JsTestDriver 仅适用于客户端)。我不想要任何特别的东西 - 只想单击鼠标右键并运行单个测试用例。 “世界上最智能的 javascript IDE”应该很容易吧?
    猜你喜欢
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2016-08-05
    相关资源
    最近更新 更多