Mocha
Mocha 是一个 JavaScript 测试框架,特别有助于执行异步测试场景。 您可以在 PyCharm 外部运行 Mocha 测试,查看按树形视图排列的测试结果,并从中轻松导航到测试源代码。 在编辑器中,测试旁边,PyCharm 会显示测试状态,并提供快速运行或调试的选项。
在开始之前
请确保您的计算机上已安装 Node.js。
请确保在设置中启用了 JavaScript and TypeScript 插件。 按 Ctrl+Alt+S 打开设置,然后选择 。 点击 已安装 选项卡。 在搜索字段中,键入 JavaScript 和 TypeScript。 有关插件的更多信息,请参见 管理插件。
在 设置 | 插件 页面、 Marketplace 选项卡上安装并启用 Node.js 插件,如 从 JetBrains Marketplace 安装插件 中所述。 该插件仅在 PyCharm 专业版中提供。
安装 Mocha
在内置的 终端 (Alt+F12 )中,输入以下任一命令:
npm install mocha:在您的项目中进行本地安装。npm install -g mocha用于全局安装。npm install --save-dev mocha:将 Mocha 安装为 开发依赖。
有关详细信息,请参阅 Mocha 官方网站的入门。
编写测试
按照 Mocha 官方网站 的说明创建测试。
运行测试
使用 PyCharm,您可以直接在编辑器中快速运行单个 Mocha 测试,或者创建运行/调试配置来执行部分或全部测试。
从编辑器运行单个测试
在装订区域中点击
或
,并从列表中选择 运行 <test_name>。

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

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

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

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

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

通过运行/调试配置启动测试调试
在您要调试的测试旁边设置断点。 您可以通过在 运行 工具窗口中双击它,或按 F4 来跳转到失败的测试。
创建 Mocha 运行/调试配置 如上所述。
从配置列表中选择 Mocha 运行/调试配置,然后在列表或工具栏中点击
 。
在打开的 调试工具窗口 中,按常规方式进行操作: 逐步执行程序、 停止并恢复程序执行、 在暂停时进行检查 、查看调用堆栈和变量、设置监视、对变量求值、 查看实际 HTML DOM ,等等。
监控代码覆盖率
使用 PyCharm,您还可以监视您的代码被 Mocha 测试覆盖的程度。 PyCharm 会在专用的 覆盖率 工具窗口中显示该统计信息,并在编辑器以及 项目 工具窗口(Alt+1 )中以可视方式标记已覆盖和未覆盖的行。 要监视覆盖率,您需要安装 nyc ,它是 Istanbul 的命令行界面。
安装 nyc
在内置的 终端 (Alt+F12 )中,键入:
npm install --save-dev nyc
使用覆盖率运行测试
在 Docker 容器内使用 Node.js 运行 Mocha 测试
使用 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部分列出了 Mocha:{ "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", "eslint": "^8.1.0", "http-server": "^14.0.0", "mocha": "^9.1.3" } }右键点击编辑器中的任意位置,并从上下文菜单中选择 运行 '<package manager> install'。
运行测试
按照 Mocha 官方网站 的说明创建测试。
与本地开发相同地进行操作:您可以直接在编辑器中运行并调试单个测试,或者按照上文 运行测试 和 调试测试 中的说明创建运行/调试配置来启动部分或全部测试。


