RubyMine 2025.2 Help

Mocha

Mocha 是一个 JavaScript 测试框架,对于执行异步测试场景特别有用。 您可以从 RubyMine 外部运行 Mocha 测试,检查按树视图排列的测试结果,并轻松导航到测试源代码。 编辑器中测试旁边,RubyMine 显示测试状态,并提供快速运行或调试的选项。

开始之前

  1. 下载并安装 Node.js

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

安装 Mocha

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

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

    • npm install -g mocha 以全局安装。

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

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

编写测试

运行测试

使用 RubyMine,您可以直接从编辑器快速运行单个 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. 测试运行器 选项卡的 运行 工具窗口中监控测试执行并分析测试结果。 如需更多信息,请参阅 探索测试结果

    监控测试执行

重新运行失败的测试

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

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

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

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

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

导航

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

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

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

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

调试测试

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

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

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

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

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

调试 Mocha 测试

通过运行/调试配置启动测试调试

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

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

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

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

监控代码覆盖率

使用 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 运行 Mocha 测试

通过 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 并确保 Mocha 列在 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", "eslint": "^8.1.0", "http-server": "^14.0.0", "mocha": "^9.1.3" } }
  6. 在编辑器中的任意位置右键点击,然后从上下文菜单中选择 运行 '<包管理器> install'

运行测试

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

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

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