RubyMine 2025.2 Help

测试 Node.js

使用 RubyMine,您可以使用许多框架测试 Node.js 应用程序。

当前页面描述了使用 内置 Node.js 测试运行器Mocha 进行测试,Mocha 是一个 JavaScript 测试框架,特别适合执行异步测试场景。 您可以从 RubyMine 外部运行 Mocha 测试,检查按树视图排列的测试结果,并轻松导航到测试源代码。 编辑器中测试旁边,RubyMine 显示测试状态,并提供快速运行或调试的选项。

开始之前

  1. 下载并安装 Node.js

  2. 确保在 JavaScript and TypeScriptNode.js必需插件在 设置 | 插件 页面的 已安装 标签页上启用。 如需了解更多信息,请参阅 管理插件

内置 Node.js 测试运行器

从第 20 版开始,Node.js 自带一个稳定版本的 内置 Node.js 测试运行器。 RubyMine 支持与内置测试运行器集成,因此您可以在不安装和配置任何第三方框架的情况下运行您的测试。

测试 TypeScript 代码也是支持的,详情请参见 测试 TypeScript

  1. 确保您的计算机上已安装 Node.js 版本 20 或更高版本,并将其配置为 local Node.js interpreter

  2. Node.js 官方网站 所述,创建测试文件。

  3. 在滚动条区:

    • 点击 运行测试图标 旁边的单个测试以运行它。

    • 点击 运行所有测试图标 旁边的测试套件以运行其中的所有测试。

    从编辑器运行测试,使用 Node.js 内置测试运行器
  4. 请查看 运行 工具窗口中的测试结果,详细了解请参阅 深入探讨测试结果

  5. 重新运行测试:

    • 要重新运行单个测试,请在 运行 工具窗口中选择它,然后从其上下文菜单中选择 运行“<test name>” ,或按 Alt+Shift+R

      从运行工具窗口重新运行单个测试

      或者,使用 测试旁边的 gutter 图标重新运行。 点击 运行忽略测试图标重新运行失败的测试图标重新运行成功的测试图标 来重新运行被忽略的、失败的或成功的测试。

      从侧边栏重新运行单个测试
    • 要重新运行整个套件,请点击 重新运行“<suite name>”图标 工具窗口的 运行 工具栏。

      重新运行测试套件

      或者,点击套件旁边的槽图标。

      从侧边栏重新运行套件

使用第三方测试框架测试您的代码

虽然您可以使用任何框架,但推荐的框架是 Mocha。

安装 Mocha

  1. 在嵌入式 终端 (Alt+F12) 中,输入以下命令之一:

    • npm install mocha 以在您的项目中进行本地安装。

    • npm install&#xa0;-g mocha 以全局安装。

    • npm install&#xa0;--save-dev mocha 将 Mocha 作为 开发依赖项安装。

    可通过 Mocha 官方网站上的入门指南了解更多信息。

  2. 请安装 Chai 期望库 作为 Node.js 标准 assert 函数的高效替代品。

    在嵌入的 终端 (Alt+F12 )中,输入:

    npm install --save-dev chai

编写 Mocha 测试

运行 Mocha 测试

使用 RubyMine,您可以直接从编辑器快速运行单个 Mocha 测试,或者创建运行/调试配置来执行某些或全部测试。

从编辑器运行单个 Mocha 测试

  • 点击 “运行”按钮重新运行按钮 ,然后从列表中选择 运行 <test_name>

    从编辑器运行 Mocha 测试

    您还可以在编辑器中直接查看测试是否通过或失败,这得益于边距中的 测试状态图标 测试通过测试失败

    侧栏中的测试状态

创建一个 Mocha 运行配置

  1. 打开 运行/调试配置对话框(运行 | 编辑配置 在主菜单中),点击 "添加"按钮 在左侧窗格中,然后从列表中选择 Mocha运行/调试配置:Mocha 对话框打开。

  2. 请指定要使用的 Node 解释器以及 mocha 包的位置。

  3. 指定应用程序的工作目录。 默认情况下, 工作目录 字段显示项目根文件夹。 若要更改此预定义设置,请指定所需文件夹的路径。

  4. 可选:

    在相关源文件发生更改时自动配置重新运行测试。 要做到这一点,请在 --watch 标志中添加 其他 Mocha 选项 字段。

  5. 指定要运行的测试。 这可以是一个特定的测试或套件,整个测试文件或包含测试文件的文件夹。

    您还可以定义模式以仅运行来自匹配文件的测试,例如, *.test.js。 如果测试文件存储在单独的文件夹中,例如, test ,请在相对于工作目录的模式中指定此文件夹的路径:

    ./folder1/folder2/test/*.test.js

  6. 选择用于运行测试的 接口

通过 Mocha 运行配置运行测试

  1. 从配置列表中选择 Mocha 运行 / 调试配置,然后在列表或工具栏上点击 运行图标 &#xa0;。

  2. 测试运行器 选项卡的 运行 工具窗口中监控测试执行并分析测试结果。 如需更多信息,请参阅 探索测试结果

    • 请使用 点击查看差异 链接打开 差异查看器 并将实际结果与预期进行比较。

    • 所选测试文件的名称显示为链接。 点击此链接跳转到源代码。

  3. 测试运行器 选项卡的 运行 工具窗口中监控测试执行并分析测试结果。 如需更多信息,请参阅 探索测试结果

    监控测试执行
Mocha:监控测试

重新运行失败的 Mocha 测试

  • 点击 重新运行失败测试图标 测试结果工具栏。 RubyMine 将执行上一会话中失败的所有测试。

    Mocha:重新运行所有失败的测试
  • 若要重新运行某个特定失败的测试,请在其上下文菜单中选择 运行 <测试名称>

    在编辑器中重新运行单个失败的测试:上下文菜单
  • 或者,点击 失败的测试图标 在失败的测试旁边的装订区域,然后从列表中选择 运行 <测试名称>

    从编辑器重新运行单个失败的测试:间距图标

有关更多信息,请参阅 重新运行测试

导航

使用 RubyMine ,您可以在文件与相关测试文件之间跳转,或从 测试运行器选项卡中的测试结果跳转到测试。

  • 在编辑器中打开文件,选择上下文菜单中的 转到 | 测试(S)转到 | 测试对象 ,或者直接按 Ctrl+Shift+T ,即可在测试和其主题之间进行切换。

  • 从测试结果跳转到测试定义,双击 测试运行器 选项卡中的测试名称,或从上下文菜单中选择 跳转到源 ,或者按 F4。 测试文件在编辑器中打开时,文本光标放置在测试定义处。

  • 对于失败的测试,RubyMine 会从堆栈跟踪中将您带到测试中的失败行。 如果精确的行不在栈跟踪中, 您将被带到测试定义。

调试测试

如果测试由于不明确的原因失败,您可以调试该测试以确定测试是否已过时,或者是您对源代码所做的更改破坏了应用程序的预期行为。

使用 RubyMine,您可以直接从编辑器快速开始调试单个 Mocha 测试,或者创建一个运行/调试配置来调试部分或全部测试。

从编辑器开始调试单个测试

  1. 请在要调试的测试旁边的装订区域设置断点。 您可以通过双击 运行 工具窗口中的失败测试或按 F4 跳转到失败的测试。

  2. 点击 “运行”按钮重新运行按钮 ,然后从列表中选择 调试<test_name>

  3. 在打开的 Debug 工具窗口中,按常规操作: 逐步执行程序停止并恢复 程序执行、 在暂停时检查程序 ,探索调用堆栈和变量,设置监视,评估变量, 查看实际的 HTML DOM 等。

调试 Mocha 测试

使用 Mocha 运行/调试配置进行调试测试

  1. 将断点设置在您要调试的测试旁边。 您可以通过双击 运行 工具窗口中的失败测试或按 F4 跳转到失败的测试。

  2. 创建一个 Mocha 运行/调试配置 如上所述

  3. 从配置列表中选择 Mocha 运行 / 调试配置,然后在列表或工具栏上点击 调试图标 &#xa0;。

  4. 在打开的 调试工具窗口 中,按常规操作: 逐步执行程序停止并恢复 程序执行, 在挂起时检查程序 ,探索调用堆栈和变量,设置监视,评估变量, 查看实际 HTML DOM 等。

了解更多详细信息,请参阅 Debug failed tests

监控代码覆盖率

使用 RubyMine,您还可以监控代码有多少被 Mocha 测试覆盖。 RubyMine 在专用的 覆盖率 工具窗口中显示此统计信息,并在编辑器和 Project 工具窗口 Alt+1 中以可视化方式标记覆盖和未覆盖的行。 要监控覆盖率,您需要安装 nyc ,这是 Istanbul的命令行界面。

安装 nyc

  • 在嵌入的 终端 (Alt+F12 )中,输入:

    npm install&#xa0;--save-dev nyc

运行测试并生成覆盖率报告

  1. 启动测试:

    • 创建一个 如上所述 的 Mocha 运行/调试配置,从主工具栏的列表中选择该配置,然后单击列表右侧的 带覆盖运行

      启动 Mocha 测试并生成覆盖率报告
    • 或者,从编辑器运行特定的套件或测试覆盖率:点击左侧凹槽中的 “运行”按钮重新运行按钮 并从列表中选择 运行 <test_name> 并生成覆盖率

  2. Coverage 工具窗口中监控代码覆盖率。 报告显示了多少文件经过了测试及其中已覆盖代码行的百分比。 从报告中,您可以跳转到文件并查看哪些行已覆盖(标记为绿色)以及哪些行未覆盖(标记为红色):

    Mocha 测试:覆盖率报告

在 Docker 容器内使用 Node.js 运行测试

通过 RubyMine,您可以在 Docker 容器中运行 Mocha 测试,其方式与本地运行相同。

开始之前

  1. 按照 Node.jsNode.js Remote Interpreter 中的描述,在 设置 | 插件 页面、选项卡 Marketplace 中安装 从 JetBrains Marketplace 安装插件

  2. 请确保在设置中启用了 Docker 插件。 按 Ctrl+Alt+S 打开设置,然后选择 Plugins。 请点击 已安装 选项卡。 在搜索字段中输入 Docker。 有关插件的更多信息,请参阅 插件管理

  3. 下载、安装并配置 Docker ,如 Docker 中所述

  4. 在 Docker 中配置 Node.js 远程解释器或通过 Docker Compose将其设置为默认在您的项目中。 还要确保与此远程解释器关联的软件包管理器 设置为项目默认

  5. 打开您的 package.json 并确保所需的测试框架列在 devDependencies 部分:

    { "name": "node-express", "version": "0.0.0", "private": true, "dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "http-errors": "~1.6.3", "morgan": "~1.9.1", "pug": "^3.0.2" }, "devDependencies": { "chai": "^4.3.4", "concurrently": "^6.3.0", "eslint": "^8.1.0", "http-server": "^14.0.0", "jest": "^27.3.1", "mocha": "^9.1.3", "nyc": "^15.1.0" } }
  6. 在编辑器中的任意位置右键点击,然后从上下文菜单中选择 运行 '<包管理器> install'

运行测试

  1. 根据 Mocha official website 的指示创建测试。

  2. 如同本地开发:直接从编辑器运行和调试单个测试,或者按照上面 运行测试调试测试 中的描述创建一个运行/调试配置来启动部分或全部测试。

最后修改日期: 2025年 9月 26日