PyCharm 2026.1 Help

Jest

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

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

在开始之前

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

  2. 请确保在设置中启用了 JavaScript and TypeScript 插件。 按 Ctrl+Alt+S 打开设置,然后选择 插件。 点击 已安装 选项卡。 在搜索字段中,键入 JavaScript 和 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. 打开 Run/Debug Configuration 对话框(运行 | 编辑配置 在主菜单中),在左侧窗格中点击 添加按钮 ,并从列表中选择 Jest运行/调试配置: Jest 对话框随即打开。

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

    如果您选择 项目 别名, PyCharm 将自动使用 JavaScript 运行时 页面中 Node 运行时 字段的项目默认解释器。 在大多数情况下, 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 参数 字段中,可选地键入特定于 Node.js 的命令行选项,以传递给 Node.js 可执行文件。 可接受的选项为:

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

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

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

    • 要在项目中使用 ECMAScript 模块 ,请在 Node 参数 字段中添加 —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 测试,或创建运行/调试配置来调试部分或全部测试。

  • 设置断点 (按需)。

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

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

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

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

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

监控代码覆盖率

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

使用覆盖率运行测试

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

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

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

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

    Jest 覆盖率报告

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

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

在开始之前

  1. 设置 | 插件 页的 Marketplace 选项卡上安装 Node.jsNode.js Remote Interpreter 插件,具体请参见 从 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. 与本地开发相同地进行操作:您可以直接在编辑器中运行并调试单个测试,或者按照上文 运行测试调试测试 中的说明创建运行/调试配置来启动部分或全部测试。

2026年 3月 24日