故障排除

Karma 拥有大量的测试用例,我们用于解决 Bug 的时间有限。以下是一些帮助您解决问题的建议。

npm audit vulnerabilities #

请创建一个 Pull Request 来修复此问题。

我们收到了很多此类报告,来自多个自动化服务、其他项目和用户。绝大多数都是小问题:如果您想修复它,请创建一个 Pull Request。我们只采取直接行动来修复影响在线用户的重要问题。

如何调试 Karma 问题? #

许多问题可以通过阅读 `debug log` 或使用 `浏览器开发者工具` 来解决。

使用 `--log-level debug` 来调查服务器端问题,特别是配置问题。 #

`DEBUG` 日志包含最终“配置”的副本:请注意,插件可以更改配置,有时您应用的设置不会得到您期望的结果。日志包含核心 `karma` 行和插件行:使用日志前缀确定您的问题是否需要报告给 Karma 插件。

使用 `--no-single-run` 来调查浏览器端问题,特别是测试文件中的全局错误。 #

`--no-single-run` 选项导致服务器打印 URL 并等待。在浏览器中打开 URL 并使用浏览器开发者工具来调查问题。通常您需要打开 URL,然后单击右上角的 DEBUG 链接。这会打开一个具有更清晰代码的新窗口以进行调试。

Angular 设置方面的问题可能最好通过咨询其他 Angular 用户来调试。覆盖率方面的问题可能与您的配置、覆盖率检测的编译器或可能是 karma-coverage 有关。

使用源代码! #

`karma` 全部是 JavaScript 代码:也许您可以通过添加日志来调试您的问题?

这是一个常见的 Windows 问题,原生 ws 模块的编译失败。无论如何, `ws` 都有一个备用 JS 实现,npm 应该会使用它。您只需要确保您使用的是 npm 的最新版本即可。为此,您可以

更新 npm #

$ npm install -g npm

或者

重新安装 NodeJS #

如果您在更新 npm 时遇到问题,您可以直接访问 NodeJS 下载最新版本。它将包含最新版本的 npm。

浏览器就是无法启动。怎么回事? #

更有可能是 Karma 无法找到浏览器二进制文件(执行文件)的位置。您可以通过设置包含正确路径的相应环境变量来解决此问题(例如,Google Chrome 使用 `CHROME_BIN` 环境变量)。查看 [浏览器] 以了解更多信息。

我从浏览器收到一个奇怪的错误,如何调试它? #

转到捕获的浏览器并单击“DEBUG”按钮(或打开 `http://localhost:9876/debug.html`)并使用 Web 检查器查看发生了什么。(您可能需要刷新 debug.html 页面才能在 Web 检查器打开后启动它。)

我从 HTML 文件收到一个语法错误。看起来预处理器没有工作。 #

`preprocessors` 配置设置中的模式通过 `basePath` 设置解析。有关更多信息,请参阅预处理器。您还可以打开调试日志(在启动 Karma 时使用 `--log-level debug`),Karma 将显示哪些文件已预处理。

我收到一个 `npm ERR! peerinvalid Peer` 错误。如何修复它? #

首先尝试从您的 `node_modules` 中删除 `karma` 和 `karma-*` 模块(例如 `rm -rf /usr/local/lib/node_modules/karma-*`),然后重新安装 Karma。

我的测试运行非常慢。怎么回事? #

确保 Karma 的选项卡处于活动状态。浏览器仅为非活动选项卡提供最少的 CPU。

注意

如果您在此处找不到您问题的解决方案,您也可以在 邮件列表Stack Overflow 中寻求帮助。

我彻底卡住了。我尝试了一切! #

由于测试设置的复杂性,我们很少在没有重现步骤的情况下修复错误。最好的方法是创建一个 GitHub 项目,安装所有组件并重现错误。