测试 Node.js
使用 PyCharm,您可以使用众多框架对 Node.js 应用程序进行测试。
当前页面描述了使用 内置 Node.js 测试运行器 或 Mocha 进行测试,Mocha 是一个 JavaScript 测试框架,特别适合执行异步测试场景。 您可以在 PyCharm 外部运行 Mocha 测试,查看按树形视图排列的测试结果,并从中轻松导航到测试源代码。 在编辑器中,测试旁边,PyCharm 会显示测试状态,并提供快速运行或调试的选项。
在开始之前
请确保您的计算机上已安装 Node.js。
请确保在设置中启用了 JavaScript and TypeScript 插件。 按 Ctrl+Alt+S 打开设置,然后选择 。 点击 已安装 选项卡。 在搜索字段中,键入 JavaScript 和 TypeScript。 有关插件的更多信息,请参见 管理插件。
在 设置 | 插件 页面、 Marketplace 选项卡上安装并启用 Node.js 插件,如 从 JetBrains Marketplace 安装插件 中所述。 该插件仅在 PyCharm 专业版中提供。
内置 Node.js 测试运行程序
从版本 20 开始,Node.js 附带稳定版的 内置 Node.js 测试运行程序。 PyCharm 支持与内置测试运行程序集成,因此您无需安装和配置任何第三方框架即可运行测试。
也支持测试 TypeScript 代码,详情请参见 测试 TypeScript。
请确保您的计算机上安装了 Node.js 版本 20 或更高版本,并将其配置为 本地 Node.js 运行时。
按照 Node.js 官方网站 上的说明创建测试文件。
在装订区域:
点击单个测试旁边的
以运行它。
点击测试套件旁边的
以运行其中的所有测试。

在 运行 工具窗口中检查测试结果,详细信息请参阅 浏览测试结果。
重新运行测试:
要重新运行单个测试,请在 运行 工具窗口中选择它,并在其上下文菜单中选择 运行 '<test name>' ,或按 Alt+Shift+R。

或者,使用测试旁边的装订区域图标重新运行。 点击
、
或
可重新运行已忽略、失败或成功的测试。

要重新运行整个套件,请在 运行 工具窗口的工具栏上点击
。

或者,点击套件旁边的装订区域图标。

使用第三方测试框架测试您的代码
虽然您可以使用任意框架,但推荐使用 Mocha。
安装 Mocha
在内置的 终端 (Alt+F12 )中,输入以下任一命令:
npm install mocha:在您的项目中进行本地安装。npm install -g mocha用于全局安装。npm install --save-dev mocha:将 Mocha 安装为 开发依赖。
有关详细信息,请参阅 Mocha 官方网站的入门。
安装 Chai 断言库 ,以高效替代 Node.js 标准 assert 函数。
在内置的 终端 (Alt+F12 )中,键入:
npm install --save-dev chai
编写 Mocha 测试
按照 Mocha 官方网站 的说明创建测试。
运行 Mocha 测试
使用 PyCharm,您可以直接在编辑器中快速运行单个 Mocha 测试,或者创建运行/调试配置来执行部分或全部测试。
从编辑器运行单个 Mocha 测试
在装订区域中点击
或
,并从列表中选择 运行 <test_name>。

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

创建 Mocha 运行配置
打开 Run/Debug Configuration 对话框( 在主菜单中),在左侧窗格中点击
,并从列表中选择 Mocha。 运行/调试配置:Mocha 对话框将打开。
指定要使用的 Node.js 运行时以及
mocha软件包的位置。指定应用程序的工作目录。 默认情况下, 工作目录 字段会显示项目根文件夹。 若要更改此预定义设置,请指定目标文件夹的路径。
可选:
配置在相关源文件发生更改时自动重新运行测试。 为此,请在 额外的 Mocha 选项 字段中添加
--watch标志。指定要运行的测试。 这可以是特定的测试或套件、整个测试文件,或包含测试文件的文件夹。
您还可以定义模式,以仅运行匹配的文件中的测试,例如,
*.test.js。 如果测试文件存储在单独的文件夹中,例如, test ,请在相对于工作目录的模式中指定此文件夹的路径:./folder1/folder2/test/*.test.js选择要运行的测试所使用的 接口。
通过 Mocha 运行配置运行测试
从配置列表中选择 Mocha 运行/调试配置,然后在列表或工具栏中点击
 。
监控测试执行并在 测试运行器 选项卡的 运行 工具窗口中分析测试结果。 有关详细信息,请参阅 探索测试结果。
使用 点击以查看差异 链接打开 差异查看器 ,并将实际结果与预期进行比较。
包含所选测试的文件名显示为链接。 点击此链接可跳转到源代码。
监控测试执行并在 测试运行器 选项卡的 运行 工具窗口中分析测试结果。 有关详细信息,请参阅 探索测试结果。


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

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

或者,点击失败测试旁边的标记栏中的
,然后从列表中选择 。

有关详细信息,请参阅 重新运行测试。
导航
使用 PyCharm,您可以在文件与相关测试文件之间跳转,或从 测试运行器选项卡 中的测试结果跳转到该测试。
要在测试与其被测对象之间相互跳转,请在编辑器中打开该文件,并从上下文菜单中选择 或 ,或直接按 Ctrl+Shift+T。
要从测试结果跳转到测试定义,请在 测试运行器 选项卡中双击测试名称,或从上下文菜单中选择 ,或直接按 F4。 测试文件将在编辑器中打开,插入符号定位于测试定义处。
对于失败的测试,PyCharm 会根据堆栈跟踪将您定位到测试中的失败行。 如果堆栈跟踪中没有精确的代码行,将带您前往测试定义。
调试测试
如果测试由于原因不明而失败,您可以调试该测试,以确定测试是否已过时,或者您对源代码所做的更改是否破坏了应用程序的预期行为。
使用 PyCharm,您可以直接在编辑器中快速开始调试单个 Mocha 测试,或者创建运行/调试配置来调试部分或全部测试。
从编辑器开始调试单个测试
在您要调试的测试旁边的装订区域设置断点。 您可以通过在 运行 工具窗口中双击它,或按 F4 来跳转到失败的测试。
在装订区域中点击
或
,并从列表中选择 调试 <test_name>。
在 调试 工具窗口,照常进行: 逐步执行程序, 停止并恢复 程序执行, 在暂停时进行检查 ,探索调用堆栈和变量,设置监视,计算变量, 查看实际 HTML DOM ,等等。

使用 Mocha 运行/调试配置调试测试
在您要调试的测试旁边设置断点。 您可以通过在 运行 工具窗口中双击它,或按 F4 来跳转到失败的测试。
创建 Mocha 运行/调试配置 如上所述。
从配置列表中选择 Mocha 运行/调试配置,然后在列表或工具栏中点击
 。
在打开的 调试工具窗口 中,按常规方式进行操作: 逐步执行程序、 停止并恢复程序执行、 在暂停时进行检查 、查看调用堆栈和变量、设置监视、对变量求值、 查看实际 HTML DOM ,等等。
有关详细信息,请参阅 Debug failed tests。
监控代码覆盖率
使用 PyCharm,您还可以监视您的代码被 Mocha 测试覆盖的程度。 PyCharm 会在专用的 覆盖率 工具窗口中显示该统计信息,并在编辑器以及 项目 工具窗口(Alt+1 )中以可视方式标记已覆盖和未覆盖的行。 要监视覆盖率,您需要安装 nyc ,它是 Istanbul 的命令行界面。
安装 nyc
在内置的 终端 (Alt+F12 )中,键入:
npm install --save-dev nyc
使用覆盖率运行测试
在 Docker 容器内使用 Node.js 运行测试
使用 PyCharm,您可以在 Docker 容器内运行 Mocha 测试,就像在本地一样。
在开始之前
在 设置 | 插件 页的 Marketplace 选项卡上安装 Node.js 和 Node.js Remote Interpreter 插件,具体请参见 从 JetBrains Marketplace 安装插件。
请确保在设置中已启用 Docker 插件。 按 Ctrl+Alt+S 打开设置,然后选择 。 点击 已安装 选项卡。 在搜索字段中输入 Docker。 有关插件的更多信息,请参见 管理插件。
下载、安装并配置 Docker ,如 Docker.
在 Docker 中配置 Node.js 远程运行时 ,或通过 Docker Compose ,并在您的项目中 将其设置为默认。 还要确保与此远程运行时关联的包管理器已 设为项目默认值。
打开您的 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" } }右键点击编辑器中的任意位置,并从上下文菜单中选择 运行 '<package manager> install'。
运行测试
按照 Mocha 官方网站 的说明创建测试。
与本地开发相同地进行操作:您可以直接在编辑器中运行并调试单个测试,或者按照上文 运行测试 和 调试测试 中的说明创建运行/调试配置来启动部分或全部测试。

