测试 Node.js
最后修改时间:2023 年 12 月 6 日借助 PyCharm,您可以使用多种框架测试 Node.js 应用程序。
当前页面描述了使用内置 Node.js 测试运行器或Mocha进行测试,Mocha 是一个 JavaScript 测试框架,对于执行异步测试场景特别有用。您可以从 PyCharm 外部运行 Mocha 测试,检查以树视图排列的测试结果,并从那里轻松导航到测试源。在编辑器中的测试旁边,PyCharm 显示测试的状态以及快速运行或调试测试的选项。
笔记
自 2018 年 5 月起,Nodeunit 已被弃用。更多信息请参考Nodeunit官网。
在你开始之前
内置 Node.js 测试运行器
从版本 20 开始,Node.js 附带了内置 Node.js 测试运行程序的稳定版本。PyCharm 支持与内置测试运行器集成,因此您无需安装和配置任何第三方框架即可运行测试。
确保您的计算机上安装了 Node.js 版本 20 或更高版本,并配置为本地 Node.js 解释器。
按照Node.js 官方网站上的描述创建测试文件。
在阴沟里:
单击单个测试旁边的 来运行它。
单击测试套件旁边的 可以运行其中的所有测试。
在运行工具窗口中检查测试结果,从探索测试结果了解更多信息。
重新运行测试:
要重新运行单个测试,请在运行工具窗口中选择它,然后从其上下文菜单中选择运行“<测试名称>”或按。AltShift0R
或者,使用测试旁边的装订线图标重新运行。单击、或重新运行被忽略、失败或成功的测试。
要重新运行整个套件,请单击“运行”工具窗口的工具栏上的。
或者,单击套件旁边的装订线图标。
使用第三方测试框架测试您的代码
尽管您可以使用任何框架,但推荐的框架是 Mocha。
安装Mocha
在嵌入式终端( ) 中,键入以下命令之一:AltF12
npm install mocha
用于项目中的本地安装。npm install -g mocha
用于全局安装。npm install --save-dev mocha
安装 Mocha 作为开发依赖项。
从Mocha 官方网站上的入门了解更多信息。
安装Chai 期望库作为Node.js 标准断言函数的有效替代品。
在嵌入式终端( ) 中,键入:AltF12
npm install --save-dev chai
编写 Mocha 测试
根据Mocha官方网站的说明创建测试。
运行 Mocha 测试
使用 PyCharm,您可以直接从编辑器快速运行单个 Mocha 测试,或创建运行/调试配置来执行部分或全部测试。
从编辑器运行单个 Mocha 测试
单击装订线中的或,然后从列表中选择运行 <test_name> 。
通过测试状态图标和装订线,您还可以直接在编辑器中查看测试是通过还是失败。
创建 Mocha 运行配置
打开“运行/调试配置”对话框(主菜单上的“运行”|“编辑配置” ),单击左侧窗格,然后从列表中选择Mocha 。“运行/调试配置:Mocha”对话框打开。
指定要使用的节点解释器和包的位置
mocha
。指定应用程序的工作目录。默认情况下,工作目录字段显示项目根文件夹。要更改此预定义设置,请指定所需文件夹的路径。
可选:
配置根据相关源文件中的更改自动重新运行测试。为此,请
--watch
在Extra Mocha 选项字段中添加该标志。指定要运行的测试。这可以是特定的测试或套件、整个测试文件或包含测试文件的文件夹。
您还可以定义模式以仅运行匹配文件中的测试,例如
*.test.js
. 如果带有测试的文件存储在test文件夹中,请在模式中指定该文件夹相对于工作目录的路径,例如./folder1 。/folder2 /test /*.test.js 选择要运行的测试中使用的接口。
通过 Mocha 运行配置运行测试
重新运行失败的 Mocha 测试
在“测试运行程序”选项卡中,单击工具栏上的 。PyCharm 将执行上一个会话期间失败的所有测试。
要重新运行特定的失败测试,请在其上下文菜单上选择“运行 <测试名称>”。
或者,单击失败测试旁边的装订线,然后从列表中选择运行 <测试名称> 。
有关更多信息,请参阅重新运行测试。
导航
使用 PyCharm,您可以在文件和相关测试文件之间跳转,或者从“测试运行程序”选项卡中的测试结果跳转到测试。
提示
仅当测试文件遵循流行的命名约定(例如具有 .test)时,此类导航才有效。,.规格。,或_spec。后缀,位于源文件旁边或测试文件夹中。
要在测试及其主题之间跳转(反之亦然),请在编辑器中打开文件,然后选择转到| 测试或转到 | 从上下文菜单中测试主题,或者只需按。CtrlShift0T
要从测试结果跳转到测试定义,请单击“测试运行程序”选项卡中的测试名称两次,或者从上下文菜单中选择“跳转到源” ,或者只需按。测试文件在编辑器中打开,插入符号位于测试定义处。F4
对于失败的测试,PyCharm 会从堆栈跟踪中将您带到测试中的失败行。如果堆栈跟踪中没有确切的行,您将进入测试定义。
调试测试
如果测试因不明原因失败,您可以调试该测试以查明该测试是否已过时,或者您对源代码所做的更改是否破坏了应用程序的预期行为。
使用 PyCharm,您可以直接从编辑器快速开始调试单个 Mocha 测试,或创建运行/调试配置来调试部分或全部测试。
从编辑器开始调试单个测试
在要调试的测试旁边的装订线中设置一个断点。您可以通过在“运行”工具窗口中双击失败的测试或按 来跳转到失败的测试。F4
单击装订线中的 或,然后从列表中选择“调试 <test_name>” 。
在“调试”工具窗口中,照常进行:单步执行程序、停止和恢复程序执行、挂起时检查程序、查看实际的 HTML DOM、在控制台中运行 JavaScript 代码片段等。
使用 Mocha 运行/调试配置进行调试测试
在要调试的测试旁边设置断点。您可以通过在“运行”工具窗口中双击失败的测试或按 来跳转到失败的测试。F4
如上所述创建 Mocha 运行/调试配置。
从配置列表中选择 Mocha 运行/调试配置,然后单击 列表或工具栏上的 。
在打开的“调试”工具窗口中,照常进行:单步执行测试、停止和恢复测试执行、在挂起时检查测试、在调试器控制台中运行 JavaScript 代码片段,等等。
从调试失败的测试中了解更多信息。
监控代码覆盖率
使用 PyCharm,您还可以监控Mocha 测试覆盖了多少代码。PyCharm 在专用的覆盖工具窗口中显示此统计信息,并在编辑器和项目工具窗口中直观地标记覆盖和未覆盖的行。要监控覆盖范围,您需要安装nyc ,这是Istanbul的命令行界面。
安装纽约
在嵌入式终端( ) 中,键入:AltF12
npm install --save-dev nyc
提示
您还可以安装 Istanbul 本身,版本 1.1.0 或更高版本。这些版本支持 ES6 和 TypeScript。
运行覆盖率测试
在 Docker 容器内使用 Node.js 运行测试
借助 PyCharm,您可以在 Docker 容器内运行Mocha测试,就像在本地进行测试一样。
在你开始之前
在设置 |安装Node.js和Node.js 远程解释器插件 插件页面,选项卡Marketplace ,如从 JetBrains Marketplace 安装插件中所述。
确保在设置中启用了Docker插件。按打开 IDE 设置,然后选择插件。单击“已安装”选项卡。在搜索字段中,输入Docker。有关插件的更多信息,请参阅管理插件。CtrlAlt0S
按照Docker中的说明下载、安装和配置Docker
在 Docker 中或通过Docker Compose配置 Node.js 远程解释器,并将其设置为项目中的默认解释器。还要确保与此远程解释器关联的包管理器设置为项目默认值。
打开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” 。
运行测试
感谢您的反馈意见!