Karma
开始之前
安装 Karma
除了 Karma 本身,您还需要其他包(插件),例如 karma-jasmine 或 jasmine-core。 请参阅 Karma 官方网站 了解更多信息。
打开内置的 终端 (Alt+F12)。
输入以下命令之一:
如果已在 package.json 中定义了 Karma 和所有必需的插件,请运行
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
回答向导中的问题,指定要使用的测试框架以及要自动捕获的浏览器。
运行测试
使用 PyCharm,您可以直接从编辑器快速运行单个 Karma 测试,或者创建一个运行/调试配置来执行部分或全部测试。
从编辑器运行单个测试
点击
或
在左侧边栏中,并从列表中选择 运行 <test_name>。
您还可以直接在编辑器中查看测试是否通过或失败,这得益于装订区域中的 测试状态 图标
和
。
创建 Karma 运行配置
打开 Run/Debug Configuration 对话框( 在主菜单中),在左侧窗格中点击
,并从列表中选择 Karma。 运行/调试配置:Karma 对话框打开。
指定要使用的 Node.js 运行时。
如果您选择 项目 别名, PyCharm 将自动使用 JavaScript 运行时 页面中 Node.js 运行时 字段的项目默认解释器。 在大多数情况下, PyCharm 会检测项目默认运行时并自行填写该字段。
您还可以选择另一个已配置的本地或远程解释器,或点击
并配置一个新的解释器。
可选地指定要传递给 Node.js 的 Node.js 特定的选项参数 和 环境变量。
指定 karma.conf.js 的路径。
指定要使用的
karma包。 可以是以下之一:Karma 安装主目录 /npm/node_modules/karma 。 如果您通过 Node 包管理器 常规安装了 Karma ,PyCharm 会自动检测到 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 运行/调试配置,然后在列表或工具栏中点击
 。
监控测试执行并在 测试运行器 选项卡的 运行 工具窗口中分析测试结果。 有关详细信息,请参阅 探索测试结果。
重新运行失败的测试
在测试结果工具栏上点击
。 PyCharm 将执行上一次会话中失败的所有测试。

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

重新运行上一次会话中的所有测试,请点击测试结果工具栏上的
或按下 Ctrl+F5。
更改相关源代码后要自动重新运行测试,请按测试结果工具栏上的
。
有关详细信息,请参阅 重新运行测试。
导航
使用 PyCharm,您可以在文件与相关测试文件之间跳转,或从 测试运行器选项卡 中的测试结果跳转到该测试。
要在测试与其被测对象之间相互跳转,请在编辑器中打开该文件,并从上下文菜单中选择 或 ,或直接按 Ctrl+Shift+T。
要从测试结果跳转到测试定义,请在 测试运行器 选项卡中双击测试名称,或从上下文菜单中选择 ,或直接按 F4。 测试文件将在编辑器中打开,插入符号定位于测试定义处。
对于失败的测试,PyCharm 会根据堆栈跟踪将您定位到测试中的失败行。 如果堆栈跟踪中没有确切的行,PyCharm 会将您定位到测试定义处。
调试测试
使用 PyCharm,您可以直接从编辑器中快速开始调试单个 Karma 测试,或创建一个运行/调试配置来调试部分或全部测试。
从编辑器开始调试单个测试
在测试中 设置断点。
点击
或
并从列表中选择 调试 <test_name>。
通过运行/调试配置启动测试调试
监控代码覆盖率
使用 PyCharm,您还可以监控代码有多少 通过 Karma 测试覆盖。 PyCharm 会在专用的 覆盖率 工具窗口中显示这些统计信息,并在编辑器和 项目 工具窗口中直观地标记已覆盖和未覆盖的行 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 运行/调试配置,然后在列表或工具栏中点击
 。
或者,使用编辑器中的测试图标快速运行特定的套件或带覆盖率的测试。

在 覆盖率 工具窗口中监视代码覆盖率。
每次运行 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会生成包含所有文件覆盖率的详细文本表。