GoLand 2025.2 Help

Jest

Jest 是一个用于客户端 JavaScript 应用程序,尤其是 React 应用程序的测试平台。 请访问 Jest 官方网站了解该平台的更多信息。

您可以在 GoLand 中直接运行和调试使用 Jest 的测试。 您可以在树状视图中查看测试结果,并从中轻松导航到测试源代码。 测试状态会显示在编辑器中测试旁边,并提供快速运行或调试的选项。

开始之前

  1. 下载并安装 Node.js

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

安装并配置 Jest

  • 在嵌入式 终端Alt+F12 )中键入:

    npm install --save-dev jest

请参阅 Jest 官方网站上的 入门配置 Jest 了解更多信息。

运行测试

在 GoLand 中,您可以直接从编辑器快速运行单个 Jest 测试,也可以创建运行/调试配置来执行部分或全部测试。

关于为 JavaScript 和 TypeScript 代码创建 Vitest 测试的更多信息,请参阅 Vitest 官方网站上的 Vitest 功能

从编辑器运行单个测试

  • 单击 运行图标重新运行图标 ,然后从列表中选择 Run <test_name>

    从编辑器运行单个测试

    借助编辑器中边栏的 测试状态 图标 测试通过测试失败 ,您也可以直接查看测试是否通过或失败。

从项目工具窗口运行文件夹中的全部测试

  • 项目 工具窗口 Alt+1 中,选择包含测试的文件夹,然后选择 Run 'Tests in <folder name>'

    运行文件夹中的全部测试

创建 Jest 运行配置

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

  2. 指定要使用的 Node.js 解释器。

    如果选择 项目 别名,GoLand 将自动使用 Node 解释器 字段中的项目默认解释器。 在大多数情况下,GoLand 会检测项目默认解释器,并自动填充该字段。

    您还可以选择另一个已配置的本地解释器,或单击 浏览按钮 配置新的解释器。

  3. 指定 jestreact-scriptsreact-script-tsreact-super-scriptsreact-awesome-scripts 包的位置。

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

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

  6. 可选地指定要使用的 jest.config.js jest.config.ts 文件:从列表中选择相关文件,或单击 浏览按钮 并在打开的对话框中选择它,也可以直接在字段中输入路径。

    如果该字段为空,GoLand 将查找包含 jest 键的 package.json 文件。 搜索将在文件系统中从 工作目录 向上执行。 如果未找到合适的 package.json 文件,则会即时生成 Jest 默认配置

  7. 可选:

    配置在相关源文件更改时自动重新运行测试。 为此,请在 Jest 选项 字段中添加 --watch 标志。

    You can also turn the watch mode on later by pressing the 监视更改 toggle button in the 运行 tool window during a test session, refer to Rerun test automatically on changes (watch mode) below.

  8. 可选:

    指定用于执行命令的环境变量。 GoLand 将在 process.env 的自动补全列表中显示这些变量。

    来自 Jest 运行配置的环境变量补全
  9. Node 选项 字段中,您可以输入要传递给 Node.js 可执行文件的 Node.js 特定命令行选项。 可接受的选项包括:

    • 使用 --require coffeescript/register 可在运行时即时将 CoffeeScript 文件编译为 JavaScript。

      此模式要求项目中包含 coffeescript 包的一部分 register.js 文件。

    • 使用 --inspect--inspect-brk 参数以支持 Chrome 调试协议

    • 若要在项目中使用 ECMAScript 模块 ,请在 Node 选项 字段添加 —experimental-vm-modules 标志。

通过运行配置运行测试

  1. 在配置列表中选择 Jest 运行/调试配置,然后在列表中或工具栏上单击 运行图标

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

重新运行失败的测试

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

  • 若要重新运行某个特定失败的测试,在其上下文菜单中选择 Run <test name>

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

在发生更改时自动重新运行测试(监视模式)

GoLand 支持 watch 模式,即每当测试相关的源文件发生更改时,将自动重新运行测试。 因此,您只需修改代码,而无需手动重新运行测试或重新启动 Jest 运行/调试配置。

导航

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

使用 GoLand,您可以在文件与其相关测试文件之间,在测试或套件定义与其 测试运行器选项卡 中的结果之间跳转。

  • 要在测试与其目标之间跳转,请在编辑器中打开文件,并从上下文菜单中选择 跳转至 | 测试(S)跳转至 | 测试对象 ,或直接按 Ctrl+Shift+T

  • 要从测试结果跳转至测试定义,请在 测试运行器 选项卡中双击测试名称,或从上下文菜单中选择 跳转到源 ,或直接按 F4。 测试文件将在编辑器中打开,光标定位在测试定义处。

  • 要从测试或套件定义跳转至其在 测试运行器 选项卡中的结果,请单击边缘的 测试通过图标测试失败图标 ,并从列表中选择 Select <test_name> in Test Tree

    从测试定义跳转到测试树
  • 对于失败的测试,GoLand 会根据堆栈跟踪定位至测试中的失败行。 如果堆栈跟踪中未包含确切的代码行,则将跳转至测试定义。

    从失败的 Jest 测试跳转到失败行

快照测试

GoLand 对 Jest 的集成支持快照测试等强大功能。

使用 .toMatchSnapshot() 方法运行测试时,Jest 会在 __snapshots__ 文件夹中创建快照文件。 要从测试跳转到其关联的快照,请单击测试边缘的 转到快照(相机)图标 ,或从 .toMatchSnapshot() 方法的上下文菜单中选择所需快照。

Jest 快照测试:从测试文件跳转到相应快照

如果快照与渲染的应用程序不一致,则测试将失败。 这表明要么是代码中的某些更改导致了不一致,要么是快照已过时需更新。

要查看导致不一致的原因,请通过 点击查看差异 链接打开 GoLand 内置的 Diff Viewer ,该链接位于 测试运行器 选项卡的右侧窗格中。

Jest 快照:在 GoLand 差异查看器中对比期望快照和实际快照

您可以直接在 测试运行器 选项卡的 运行 工具窗口中更新过时快照。

  • 要更新某个特定测试的快照,请使用测试名称旁边的 点击更新快照 链接。

  • 要更新文件中所有测试的过时快照,请使用测试文件名旁边的 点击更新失败快照

Jest 快照测试:更新快照

调试测试

借助 GoLand,您可以直接从编辑器快速调试单个 Jest 测试,或创建运行/调试配置以调试部分或全部测试。

  • 根据需要设置断点

  • 要从编辑器调试单个测试,请单击边缘的 运行按钮重新运行图标 ,并从列表中选择 Debug <test_name>

  • 要调试文件夹中的所有测试,请在 项目 工具窗口中选择该文件夹,然后从上下文菜单中选择 Debug 'Tests in <folder name>'

    调试文件夹中的全部测试
  • 要通过运行/调试配置启动测试调试,请创建一个如上所述的 Jest 运行/调试配置 as described above

    然后从配置列表中选择 Jest 运行/调试配置,并单击列表中或工具栏上的 调试图标

在打开的 调试工具窗口 中按常规方式操作: 逐步执行程序停止与恢复程序执行、 在挂起时进行检查 ,查看调用堆栈及变量、设置监视、计算变量值、 查看实际 HTML DOM等。

监视代码覆盖率

借助 GoLand,您还可以监控有多少代码被 Jest 测试覆盖。 GoLand 会在专用的 覆盖率 工具窗口中显示此统计信息,并在编辑器与 项目 工具窗口中以可视方式标记已覆盖和未覆盖的代码行 Alt+1

运行带覆盖率的测试

  1. 创建一个如上所述的 Jest 运行/调试配置 as described above

  2. 从主工具栏的列表中选择 Jest 运行/调试配置,然后单击列表右侧的 运行带覆盖率图标

    或者,也可以直接从编辑器中以覆盖方式快速运行某个套件或测试:单击边缘的 运行按钮重新运行按钮 ,并从列表中选择 Run <test_name> with Coverage

    从编辑器运行带覆盖率的 Jest 测试
  3. Coverage 工具窗口中监控代码覆盖率。 报告显示有多少文件经过测试覆盖,以及这些文件中被覆盖代码行所占的百分比。 您可以通过报告跳转至文件,查看哪些行已被覆盖(标记为绿色),哪些行未被覆盖(标记为红色):

    Jest 覆盖率报告

在 Docker 容器中的 Node.js 中运行 Jest 测试

借助 GoLand,您可以像在本地一样在 Docker 容器中运行 Jest 测试。

开始之前

  1. 设置 | 插件 页的 Marketplace 选项卡中安装 Node.jsNode.js Remote Interpreter 插件,如 从 JetBrains Marketplace 安装插件 中所述。

  2. 下载、安装并配置 Docker ,具体操作请参见 Docker

  3. 在 Docker 中配置 Node.js 远程解释器 或通过 Docker Compose 配置,并 将其设置为项目默认解释器。 还请确保与此远程解释器相关联的包管理器被 设置为项目默认值

  4. 打开 package.json ,确认在 devDependencies 部分中列出了 Jest:

    { "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": { "eslint": "^8.1.0", "http-server": "^14.0.0", "jest": "^27.3.1" } }
  5. 在编辑器中任意位置右键单击并从上下文菜单中选择 Run '<package manager> install'

运行测试

  1. 请按照 Jest 官方网站 的说明创建测试。

  2. 如本地开发一样操作:可从编辑器中运行与调试单个测试,或按上述 运行测试调试测试 说明创建运行/调试配置以运行部分或全部测试。

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