Karma
开始之前
安装 Karma
除了 Karma 本身,您还需要额外的包(插件),例如 karma-jasmine 或 jasmine-core。 进一步了解,请访问 Karma official website。
打开嵌入式 终端 (Alt+F12)。
请键入以下命令之一:
npm install如果 Karma 和所有必需插件已经在 package.json 中定义。要安装 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
回答向导中的问题,指定要使用的测试框架以及要自动捕获的浏览器。
运行测试
使用 RubyMine,您可以直接从编辑器快速运行单个 Karma 测试,或者创建一个运行/调试配置来执行部分或全部测试。
从编辑器运行单个测试
点击
或
在左侧边栏中,并从列表中选择 运行 <test_name>。
您还可以在编辑器中直接查看测试是否通过或失败,这得益于边距中的 测试状态图标
和
。
创建 Karma 运行配置
打开 运行/调试配置对话框( 在主菜单中),点击
在左侧窗格中,然后从列表中选择 Karma。 运行/调试配置:Karma 对话框打开。
指定要使用的 Node.js 解释器。
如果您选择 Project 别名,RubyMine 将自动使用 Node 解释器 字段中 Node.js 页面的项目默认解释器。 在大多数情况下,RubyMine 会检测到项目的默认解释器并自动填写该字段。
您也可以选择另一个已配置的本地或远程解释器,或点击
并配置一个新的。
可选地指定 Node.js-specific option parameters 和传递给 Node.js 的 environment variables。
指定 karma.conf.js 的路径。
指定要使用的
karma包。 这可以是以下之一:Karma 安装主目录 /npm/node_modules/karma 。 如果您通过 Node Package Manager 正常安装了 Karma ,RubyMine 将自行检测 Karma 安装位置。
node_modules/@angular/cli的路径。如果您使用 Nx,
node_modules/nx的路径。

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

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

重新运行上一次会话中的所有测试,请点击测试结果工具栏上的
或按下 Ctrl+F5。
更改相关源代码后要自动重新运行测试,请按测试结果工具栏上的
。
有关更多信息,请参阅 重新运行测试。
导航
使用 RubyMine ,您可以在文件与相关测试文件之间跳转,或从 测试运行器选项卡中的测试结果跳转到测试。
在编辑器中打开文件,选择上下文菜单中的 或 ,或者直接按 Ctrl+Shift+T ,即可在测试和其主题之间进行切换。
从测试结果跳转到测试定义,双击 测试运行器 选项卡中的测试名称,或从上下文菜单中选择 ,或者按 F4。 测试文件在编辑器中打开时,文本光标放置在测试定义处。
对于失败的测试,RubyMine 会从堆栈跟踪中将您带到测试中的失败行。 如果精确的行不在栈跟踪中, 您将被带到测试定义。
调试测试
使用 RubyMine,您可以直接从编辑器中快速开始调试单个 Karma 测试,或创建一个运行/调试配置来调试部分或全部测试。
从编辑器开始调试单个测试
在测试中 设置断点。
点击
或
并从列表中选择 调试<test_name>。
通过运行/调试配置启动测试调试
监控代码覆盖率
使用 RubyMine,您还可以监控代码有多少 通过 Karma 测试覆盖。 RubyMine 在专用的 覆盖率 工具窗口中显示此统计信息,并在编辑器和 Project 工具窗口 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 run/debug 配置,并点击列表中或工具栏上的
。
或者,使用编辑器中的测试图标快速运行特定的套件或带覆盖率的测试。

在 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生成了一个包含所有文件覆盖率的详细文本表。