PyCharm 2025.3 Help

Jest

Jest 是用于客户端 JavaScript 应用的测试平台,尤其适用于 React 应用。 在 Jest 官方网站了解有关该平台的更多信息。

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

开始之前

  1. 请确保您的计算机上已安装 Node.js

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

安装并配置 Jest

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

    npm install --save-dev jest

在 Jest 官方网站上,通过 入门配置 Jest 了解更多信息。

运行测试

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

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

从编辑器运行单个测试

  • 在标记栏中点击 运行图标重新运行图标 ,并在列表中选择 运行 <test_name>

    从编辑器运行单个测试

    您还可以直接在编辑器中查看测试是否通过或失败,这要归功于标记栏中的 测试状态 图标 测试通过测试失败

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

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

    运行文件夹中的所有测试

创建 Jest 运行/调试配置

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

  2. 指定要使用的 Node.js 运行时。

    如果选择 项目 别名,PyCharm 将自动使用 JavaScript 运行时 页面 Node.js 运行时 字段中的项目默认解释器。 在大多数情况下,PyCharm 会检测到项目默认运行时并自动填充该字段。

    您也可以选择其他已配置的本地或远程解释器,或点击 浏览按钮 并配置一个新的解释器。

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

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

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

  6. 可选:

    指定要使用的 jest.config.js jest.config.ts 文件:从列表中选择相应文件,或点击 浏览按钮 并在打开的对话框中选择它,或者直接在字段中键入路径。

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

  7. 可选:

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

    您也可以在测试会话期间,在 运行 工具窗口中按下 监视更改 切换按钮,以稍后开启 watch 模式;参见下文 在发生更改时自动重新运行测试(监视模式)

  8. 可选:

    指定执行命令所需的环境变量。 PyCharm 会在 process.env 的补全列表中显示这些变量。

    来自 Jest 运行/调试配置的环境变量补全
  9. Node.js 选项 字段中,可选地键入特定于 Node.js 的命令行选项,以传递给 Node.js 可执行文件。 可接受的选项有:

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

      此模式要求 register.js 文件(属于 coffeescript 包)位于您的项目中。 因此,请确保已按照 安装 CoffeeScript 编译器 中的说明在本地安装 coffeescript 包。

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

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

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

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

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

重新运行失败的测试

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

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

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

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

PyCharm 支持 watch 模式,一旦对测试相关的源文件进行任何更改,测试会自动重新运行。 因此,您只需修改代码,而无需手动重新运行测试或重新启动 Jest 运行/调试配置。

导航

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

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

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

  • 要从测试结果跳转到测试定义,请在 测试运行器 选项卡中双击测试名称,或在上下文菜单中选择 跳转到源 ,或者直接按 F4。 测试文件会在编辑器中打开,插入符号将置于测试定义处。

  • 要从测试或套件的定义跳转到其在 测试运行器 选项卡中的结果,请在标记栏中点击 测试通过图标测试失败图标 ,并在列表中选择 在测试树中选择 <test_name>

    从测试定义跳转到测试树
  • 对于失败的测试,PyCharm 会根据堆栈跟踪将您定位到测试中的失败行。 如果堆栈跟踪中没有确切的行,您将被带到测试定义处。

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

快照测试

PyCharm 与 Jest 的集成支持一项强大的功能:快照测试。

当您运行带有 .toMatchSnapshot() 方法的测试时,Jest 会在 __snapshots__ 文件夹中创建一个快照文件。 要从测试跳转到其相关的快照,请点击测试旁的标记栏中的 转到快照(相机)图标 ,或在 .toMatchSnapshot() 方法的上下文菜单中选择所需的快照。

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

如果快照与渲染后的应用不匹配,测试会失败。 这表明要么是您代码中的某些更改导致了这种不匹配,要么是快照已过时,需要更新。

要了解导致这种不匹配的原因,请通过 测试运行器 选项卡右侧窗格中的 点击以查看差异 链接打开 PyCharm 内置的 差异查看器

Jest 快照:在 PyCharm 差异查看器中比较预期快照和实际快照

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

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

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

Jest 快照测试:更新快照

调试测试

借助 PyCharm,您可以直接在编辑器中快速开始调试单个 Jest 测试,或创建运行/调试配置来调试部分或全部测试。

  • 设置断点 ,在需要的地方。

  • 要从编辑器开始调试单个测试,请在标记栏中点击 运行按钮重新运行图标 ,并在列表中选择 调试 <test_name>

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

    调试文件夹中的所有测试
  • 要通过运行/调试配置启动测试调试,请创建 Jest 运行/调试配置 如上所述

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

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

监控代码覆盖率

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

使用覆盖率运行测试

  1. 创建 Jest 运行/调试配置 如上所述

  2. 在主工具栏的列表中选择 Jest 运行/调试配置,然后点击 使用覆盖率运行图标 &#xa0;(位于列表右侧)。

    或者,快速从编辑器以覆盖率运行特定套件或测试:在标记栏中点击 运行按钮重新运行按钮 ,并在列表中选择 使用覆盖率运行 <test_name>

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

    Jest 覆盖率报告

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

借助 PyCharm,您可以在 Docker 容器内以与本地相同的方式运行 Jest 测试。

开始之前

  1. 安装 Node.jsNode.js Remote Interpreter 插件在 设置 | 插件 页面,选项卡 Marketplace ,正如在 Installing plugins from JetBrains Marketplace 中所述。

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

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

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

  5. 打开您的 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" } }
  6. 右键点击编辑器中的任意位置,并在上下文菜单中选择 运行 '<package manager> install'

运行测试

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

  2. 与本地开发相同地进行:您可以直接在编辑器中运行并调试单个测试,或按照上文的 运行测试调试测试 中的说明,创建运行/调试配置以启动部分或全部测试。

最后修改日期: 2025年 12月 2日