测试 Node.js
使用 WebStorm,您可以使用多个框架测试 Node.js 应用程序。
当前页面介绍使用 内置 Node.js 测试运行器或 Mocha进行测试,Mocha 是一个 JavaScript 测试框架,特别适合执行异步测试场景。 您可以通过 WebStorm 外部运行 Mocha 测试,查看以树状视图排列的测试结果,并轻松导航到测试源码。 测试旁边,在编辑器中,WebStorm 显示测试状态,并提供快速运行或调试的选项。
准备工作
内置 Node.js 测试运行器
从第 20 版开始,Node.js 提供稳定版本的 内置 Node.js 测试运行器。 WebStorm 支持与内置测试运行器集成,因此您无需安装和配置任何第三方框架即可运行测试。
也支持测试 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 测试
在 WebStorm 中,您可以直接从编辑器快速运行单个 Mocha 测试,也可以创建运行/调试配置以执行部分或全部测试。
从编辑器运行单个 Mocha 测试
在边距中点击
或
,然后从列表中选择 运行 <test_name>。

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

创建 Mocha 运行配置
打开 运行/调试配置对话框(在主菜单中点击 ),在左侧窗格中点击
,并从列表中选择 Mocha。 将打开 运行/调试配置:Mocha对话框。
指定要使用的 Node 解释器以及
mocha包的位置。指定应用程序的工作目录。 默认情况下, 工作目录 字段显示项目根文件夹。 如需更改此预定义设置,请指定所需文件夹的路径。
可选:
配置在相关源文件发生更改时自动重新运行测试。 为此,请在 额外的 Mocha 选项 字段中添加
--watch标志。指定要运行的测试。 可以是单个测试、某个套件、整个测试文件,也可以是包含测试文件的文件夹。
您还可以定义模式,仅运行与模式匹配的测试文件,例如
*.test.js。 如果测试文件存储在一个单独的文件夹中,例如 test ,请在模式中指定相对于工作目录的该文件夹路径:./folder1/folder2/test/*.test.js选择测试中使用的 接口。
通过 Mocha 运行配置运行测试
从配置列表中选择 Mocha 运行/调试配置,然后点击列表中或工具栏上的
。

在 测试运行器 选项卡的 运行 工具窗口中监控测试执行并分析测试结果。 有关更多信息,请参见 探索测试结果。
使用 单击查看差异 链接打开 差异查看器 ,并比较实际结果与期望值。
所选测试所属的文件名显示为链接形式。 点击该链接可跳转至源代码。
在 测试运行器 选项卡的 运行 工具窗口中监控测试执行并分析测试结果。 有关更多信息,请参见 探索测试结果。

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

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

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

如需了解详细信息,请参阅 重新运行测试。
导航
使用 WebStorm,您可以在文件与相关测试文件之间跳转,或从 测试运行器标签页中的测试结果跳转到测试本身。
要在测试及其测试对象之间相互跳转,请在编辑器中打开文件,然后从上下文菜单中选择 或 ,或直接按 Ctrl+Shift+T。
要从测试结果跳转到测试定义,请双击 测试运行器 标签页中的测试名称,或从上下文菜单中选择 ,或直接按 F4。 测试文件将在编辑器中打开,并将光标定位在测试定义处。
对于失败的测试,WebStorm 会根据堆栈跟踪将您定位到测试中的失败行。 如果堆栈跟踪中没有精确的代码行,将跳转至测试定义位置。
调试测试
如果测试因未知原因失败,您可以对该测试进行调试,以查明是测试已过时还是您对源代码的修改破坏了应用程序的预期行为。
使用 WebStorm,您可以直接从编辑器快速调试单个 Mocha 测试,或创建运行/调试配置以调试部分或全部测试。
从编辑器调试单个测试
在待调试测试旁边的标记栏中设置断点。 您可以通过在 运行 工具窗口中双击失败测试或按 F4 快速跳转至失败测试。
单击标记栏中的
或
,然后从列表中选择 调试 <test_name>。
在 调试 工具窗口中,照常操作: 单步执行程序、 暂停与恢复程序执行、 在程序挂起时检查状态、查看调用堆栈和变量、设置监视、计算变量值、 查看实际 HTML DOM 等等。

使用 Mocha 运行/调试配置调试测试
详细了解请参阅 调试失败的测试。
监视代码覆盖率
使用 WebStorm,您还可以监控代码中有多少被 Mocha 测试覆盖。 WebStorm 会在专属的 覆盖率 工具窗口中显示此统计信息,并在编辑器及 项目 工具窗口中以可视方式标记已覆盖和未覆盖的代码行 Alt+1。 要监控覆盖率,必须安装 nyc ,即 Istanbul 的命令行界面。
安装 nyc
在嵌入式 终端 (Alt+F12 )中键入:
npm install --save-dev nyc
运行覆盖率测试
在 Docker 容器中使用 Node.js 运行测试
使用 WebStorm,您可以像在本地一样,在 Docker 容器中运行 Mocha 测试。
准备工作
请确保在 设置 | 插件 页面、 已安装 选项卡中启用了所需插件: Node.js、 Node.js Remote Interpreter 与 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 官方网站上的说明创建测试。
操作方式与本地开发相同:直接从编辑器运行和调试单个测试,或创建运行/调试配置以运行部分或全部测试,具体请参见上文的 运行测试和 调试测试。


