GoLand 2025.2 Help

Karma

Karma 是一款用于测试客户端 JavaScript 的工具。 Karma 会在实际浏览器中针对您的应用程序执行测试,以确保测试结果的正确性和可靠性。 GoLand 集成了 Karma,因此您可以在 IDE 中运行、调试测试并监视其覆盖率。 您可以在树状视图中查看测试结果,并轻松导航到测试源码。 测试状态会显示在编辑器中的测试旁边,并可快速运行或调试该测试。

准备工作

  1. 下载并安装 Node.js

  2. 请确保在设置中启用了 JavaScript and TypeScript 插件。 按下 Ctrl+Alt+S 打开设置,然后选择 插件。 点击 已安装 标签。 在搜索框中键入 JavaScript and TypeScript。 如需了解插件的更多信息,请参阅 管理插件

  3. 从 JetBrains Marketplace 安装插件 一节所述,在 设置 | 插件 页的 Marketplace 标签上安装并启用 Karma 插件。

安装 Karma

除了 Karma 本身,您还需要其他软件包(插件),例如 karma-jasminejasmine-core。 请参阅 Karma 官方网站 了解详情。

  1. 打开内置 终端Alt+F12)。

  2. 输入以下命令之一:

    • 如果 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 配置文件

  1. 打开 终端 并根据操作系统输入以下命令之一以启动 karma.conf.js 配置向导:

    • 对于 macOS 和 Linux: ./node_modules/karma/bin/karma init

    • 对于 Windows:

      npm install -g karma-cli karma init
  2. 根据向导中的问题,指定要使用的测试框架和需要自动捕获的浏览器。

    另请参见 Karma 文件:模式匹配

运行测试

使用 GoLand,您可以直接在编辑器中快速运行单个 Karma 测试,或者创建运行/调试配置以执行部分或全部测试。

从编辑器运行单个测试

  • 点击左侧标记中的 运行按钮重新运行按钮 ,然后从列表中选择 运行 <test_name>

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

创建 Karma 运行配置

  1. 打开 运行/调试配置对话框(主菜单中的 运行 | 编辑配置 ),点击左侧窗格中的 添加按钮 ,然后从列表中选择 Karma。 将打开 运行/调试配置:Karma对话框。

  2. 指定要使用的 Node.js 解释器。

    如果选择 项目 别名,GoLand 将自动使用 Node 解释器 字段中项目的默认解释器。 在大多数情况下,GoLand 会检测项目的默认解释器,并自动填写该字段。

    您也可以选择另一个已配置的本地解释器,或点击 浏览按钮 以配置新解释器。

    可选地指定传递给 Node.js 的 Node.js 专用选项参数环境变量

  3. 指定 karma.conf.js 的路径。

  4. 指定要使用的 karma 包。 可以是以下之一:

    • Karma 安装根目录为 /npm/node_modules/karma 。 如果通过 Node Package Manager 定期安装了 Karma ,GoLand 会自动检测 Karma 安装根目录。

    • node_modules/@angular/cli 的路径。

    • 如果使用 Nx ,请指定 node_modules/nx 的路径。

    Karma 运行/调试配置 - 选择 Karma 包
  5. 指定应用程序的工作目录。 默认情况下, 工作目录 字段显示项目的根文件夹。 要更改此预定义设置,请指定所需文件夹的路径。

  6. 指定要运行的测试。 可以是特定测试或套件、整个测试文件或包含测试文件的文件夹。

  7. 可选地指定要传递给 Karma 的命令行选项,用于覆盖 karma.conf.js 配置文件中的默认设置。

    例如,要在 Headless Chrome 中运行或调试测试,请在 Karma 选项 字段中输入 --browsers ChromeHeadless。 有关更多信息,请参阅 使用 Headless Chrome 进行自动化测试

    要查看所有可用的 CLI 选项,请在 Alt+F12 中的 终端 输入 karma start --help

通过运行配置运行测试

  1. 从配置列表中选择 Karma 运行/调试配置,然后点击列表或工具栏中的 运行图标

  2. 测试运行器 选项卡的 运行 工具窗口中监视测试执行并分析测试结果。 有关更多信息,请参阅 浏览测试结果

重新运行失败测试

  • 点击测试结果工具栏中的 重新运行失败测试图标。 GoLand 将执行上一会话中失败的所有测试。

    重新运行失败的 Karma 测试
  • 要重新运行特定失败的测试,请在其上下文菜单中选择 运行 <test name>

    重新运行单个测试
  • 要重新运行上一会话中的所有测试,请点击测试结果工具栏中的 重新运行按钮 或按 Ctrl+F5

  • 要在更改相关源代码后自动重新运行测试,请按测试结果工具栏中的 自动重新运行切换按钮

有关更多信息,请参阅 重新运行测试

导航

使用 GoLand,您可以在文件与其对应的测试文件之间,或从 测试运行器选项卡中的测试结果跳转到测试。

  • 要在测试与其目标之间跳转,请在编辑器中打开文件,并从上下文菜单中选择 转到 | 测试(S)转到 | 测试主题 ,或直接按 Ctrl+Shift+T

  • 要从测试结果跳转到测试定义,请在 测试运行器 选项卡中双击测试名称,或从上下文菜单中选择 跳转到源 ,或直接按 F4。 测试文件将在编辑器中打开,光标定位在测试定义处。

  • 对于失败的测试,GoLand 会根据堆栈跟踪将您定位到测试中的失败行。 如果堆栈跟踪中未包含确切行,将定位到测试定义。

调试测试

使用 GoLand,您可以直接在编辑器中快速开始调试单个 Karma 测试,或创建运行/调试配置以调试部分或全部测试。

从编辑器开始调试单个测试

  1. 在测试中 设置断点

  2. 点击标记中的 运行按钮重新运行按钮 ,然后从列表中选择 调试 <test_name>

通过运行/调试配置启动测试调试

  1. 按需 设置断点

  2. 创建 Karma 运行/调试配置, 如上所述

  3. 从配置列表中选择 Karma 运行/调试配置,然后点击列表或工具栏中的 调试图标

  4. 在打开的 调试工具窗口 中,按照常规流程操作: 逐步执行程序暂停并恢复程序执行、 在暂停时检查程序 、探索调用堆栈和变量、设置监视项、评估变量、 查看实际 HTML DOM等。

监视代码覆盖率

使用 GoLand,您还可以监控代码被 Karma 测试覆盖的程度。 GoLand 会在专用的 覆盖率 工具窗口中显示此统计信息,并在编辑器和 项目 工具窗口中以可视方式标记已覆盖和未覆盖的代码行 Alt+1。 要监控覆盖率,您需要安装 karma-coverage 包并更新 karma.conf.js

安装 karma-coverage

  • 在嵌入的 终端Alt+F12 )中,输入:

    npm install &#xa0;--save-dev karma-coverage

将 karma-coverage 定义添加到配置文件中

  1. 在编辑器中打开 karma.conf.js

  2. 定位 reporters 定义,并在值列表中添加 coverage ,格式如下:

    reporters: ['progress', 'coverage']
  3. 添加 preprocessors 定义,并按以下格式指定覆盖范围:

    preprocessors: {'**/*.js': ['coverage']}

以覆盖率运行测试

  1. 如上所述创建 Karma 运行/调试配置。

  2. 从配置列表中选择 Karma 运行/调试配置,然后在列表或工具栏中点击 以覆盖率运行图标

    或者,使用编辑器中的测试图标,快速运行特定测试套件或某个测试,并获取覆盖率。

    从编辑器以覆盖率运行 Karma 测试
  3. 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 会生成包含所有文件覆盖信息的详细文本表格。

最后修改日期: 2025年 9月 26日