Karma
Karma 是一款用于测试客户端 JavaScript 的工具。 Karma 会在实际浏览器中针对您的应用程序执行测试,以确保测试结果的正确性和可靠性。 GoLand 集成了 Karma,因此您可以在 IDE 中运行、调试测试并监视其覆盖率。 您可以在树状视图中查看测试结果,并轻松导航到测试源码。 测试状态会显示在编辑器中的测试旁边,并可快速运行或调试该测试。
准备工作
下载并安装 Node.js。
请确保在设置中启用了 JavaScript and TypeScript 插件。 按下 Ctrl+Alt+S 打开设置,然后选择 。 点击 已安装 标签。 在搜索框中键入 JavaScript and TypeScript。 如需了解插件的更多信息,请参阅 管理插件。
如 从 JetBrains Marketplace 安装插件 一节所述,在 设置 | 插件 页的 Marketplace 标签上安装并启用 Karma 插件。
安装 Karma
除了 Karma 本身,您还需要其他软件包(插件),例如 karma-jasmine 或 jasmine-core。 请参阅 Karma 官方网站 了解详情。
打开内置 终端 (Alt+F12)。
输入以下命令之一:
如果 Karma 和所有所需插件已在 package.json 中定义,则使用
npm install。要将 Karma 与插件作为 开发依赖 安装:
npm install --save-dev karma npm install --save-dev <karma_plugin> <another_karma_plugin>
生成 Karma 配置文件
Karma 测试依据交互模式中生成的 karma.conf.js 配置文件运行。 如果项目中已包含 karma.conf.js ,则可跳过此步骤。 有关 Karma 配置的更多信息,请参阅 Karma 官方网站。
创建 Karma 配置文件
打开 终端 并根据操作系统输入以下命令之一以启动 karma.conf.js 配置向导:
对于 macOS 和 Linux: ./node_modules/karma/bin/karma init
对于 Windows:
npm install -g karma-cli karma init
根据向导中的问题,指定要使用的测试框架和需要自动捕获的浏览器。
另请参见 Karma 文件:模式匹配。
运行测试
使用 GoLand,您可以直接在编辑器中快速运行单个 Karma 测试,或者创建运行/调试配置以执行部分或全部测试。
从编辑器运行单个测试
点击左侧标记中的
或
,然后从列表中选择 运行 <test_name>。
借助标记中的 测试状态图标
和
,您还可以直接在编辑器中看到测试是否通过或失败。
创建 Karma 运行配置
打开 运行/调试配置对话框(主菜单中的 ),点击左侧窗格中的
,然后从列表中选择 Karma。 将打开 运行/调试配置:Karma对话框。
指定要使用的 Node.js 解释器。
如果选择 项目 别名,GoLand 将自动使用 Node 解释器 字段中项目的默认解释器。 在大多数情况下,GoLand 会检测项目的默认解释器,并自动填写该字段。
您也可以选择另一个已配置的本地解释器,或点击
以配置新解释器。
可选地指定传递给 Node.js 的 Node.js 专用选项参数和 环境变量。
指定 karma.conf.js 的路径。
指定要使用的
karma包。 可以是以下之一:Karma 安装根目录为 /npm/node_modules/karma 。 如果通过 Node Package Manager 定期安装了 Karma ,GoLand 会自动检测 Karma 安装根目录。
node_modules/@angular/cli的路径。如果使用 Nx ,请指定
node_modules/nx的路径。

指定应用程序的工作目录。 默认情况下, 工作目录 字段显示项目的根文件夹。 要更改此预定义设置,请指定所需文件夹的路径。
指定要运行的测试。 可以是特定测试或套件、整个测试文件或包含测试文件的文件夹。
可选地指定要传递给 Karma 的命令行选项,用于覆盖 karma.conf.js 配置文件中的默认设置。
例如,要在 Headless Chrome 中运行或调试测试,请在 Karma 选项 字段中输入
--browsers ChromeHeadless。 有关更多信息,请参阅 使用 Headless Chrome 进行自动化测试。要查看所有可用的 CLI 选项,请在 Alt+F12 中的 终端 输入
karma start --help。
通过运行配置运行测试
从配置列表中选择 Karma 运行/调试配置,然后点击列表或工具栏中的
。
在 测试运行器 选项卡的 运行 工具窗口中监视测试执行并分析测试结果。 有关更多信息,请参阅 浏览测试结果。
重新运行失败测试
点击测试结果工具栏中的
。 GoLand 将执行上一会话中失败的所有测试。

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

要重新运行上一会话中的所有测试,请点击测试结果工具栏中的
或按 Ctrl+F5。
要在更改相关源代码后自动重新运行测试,请按测试结果工具栏中的
。
有关更多信息,请参阅 重新运行测试。
导航
使用 GoLand,您可以在文件与其对应的测试文件之间,或从 测试运行器选项卡中的测试结果跳转到测试。
要在测试与其目标之间跳转,请在编辑器中打开文件,并从上下文菜单中选择 或 ,或直接按 Ctrl+Shift+T。
要从测试结果跳转到测试定义,请在 测试运行器 选项卡中双击测试名称,或从上下文菜单中选择 ,或直接按 F4。 测试文件将在编辑器中打开,光标定位在测试定义处。
对于失败的测试,GoLand 会根据堆栈跟踪将您定位到测试中的失败行。 如果堆栈跟踪中未包含确切行,将定位到测试定义。
调试测试
使用 GoLand,您可以直接在编辑器中快速开始调试单个 Karma 测试,或创建运行/调试配置以调试部分或全部测试。
从编辑器开始调试单个测试
在测试中 设置断点。
点击标记中的
或
,然后从列表中选择 调试 <test_name>。
通过运行/调试配置启动测试调试
监视代码覆盖率
使用 GoLand,您还可以监控代码被 Karma 测试覆盖的程度。 GoLand 会在专用的 覆盖率 工具窗口中显示此统计信息,并在编辑器和 项目 工具窗口中以可视方式标记已覆盖和未覆盖的代码行 Alt+1。 要监控覆盖率,您需要安装 karma-coverage 包并更新 karma.conf.js 。
安装 karma-coverage
在嵌入的 终端 (Alt+F12 )中,输入:
npm install  --save-dev karma-coverage
将 karma-coverage 定义添加到配置文件中
在编辑器中打开 karma.conf.js 。
定位
reporters定义,并在值列表中添加coverage,格式如下:reporters: ['progress', 'coverage']添加
preprocessors定义,并按以下格式指定覆盖范围:preprocessors: {'**/*.js': ['coverage']}
以覆盖率运行测试
如上所述创建 Karma 运行/调试配置。
从配置列表中选择 Karma 运行/调试配置,然后在列表或工具栏中点击
。
或者,使用编辑器中的测试图标,快速运行特定测试套件或某个测试,并获取覆盖率。

在 Coverage 工具窗口中监测代码覆盖率。
每次运行 Karma 测试时,都会在磁盘上生成覆盖率报告。 覆盖率报告的格式可以在配置文件中进行配置,例如:
// karma.conf.js module.exports = function(config) { config.set({ ... // optionally, configure the reporter coverageReporter: { type : 'html', dir : 'coverage/' } ... });};以下
type值是可接受的:html会生成一组带有注释源代码的 HTML 文件。lcovonly会生成一个 lcov.info 文件。lcov会生成 HTML + .lcov 文件。 此格式是默认应用的格式。cobertura会生成一个 cobertura-coverage.xml 文件,方便与 Hudson 集成。text-summary会生成一个简洁的覆盖率文本摘要,通常输出到控制台。text会生成包含所有文件覆盖信息的详细文本表格。