Karma 拥有大量的测试用例,我们用于解决 Bug 的时间有限。以下是一些帮助您解决问题的建议。
请创建一个 Pull Request 来修复此问题。
我们收到了很多此类报告,来自多个自动化服务、其他项目和用户。绝大多数都是小问题:如果您想修复它,请创建一个 Pull Request。我们只采取直接行动来修复影响在线用户的重要问题。
许多问题可以通过阅读 `debug log` 或使用 `浏览器开发者工具` 来解决。
`DEBUG` 日志包含最终“配置”的副本:请注意,插件可以更改配置,有时您应用的设置不会得到您期望的结果。日志包含核心 `karma` 行和插件行:使用日志前缀确定您的问题是否需要报告给 Karma 插件。
`--no-single-run` 选项导致服务器打印 URL 并等待。在浏览器中打开 URL 并使用浏览器开发者工具来调查问题。通常您需要打开 URL,然后单击右上角的 DEBUG 链接。这会打开一个具有更清晰代码的新窗口以进行调试。
Angular 设置方面的问题可能最好通过咨询其他 Angular 用户来调试。覆盖率方面的问题可能与您的配置、覆盖率检测的编译器或可能是 karma-coverage 有关。
`karma` 全部是 JavaScript 代码:也许您可以通过添加日志来调试您的问题?
这是一个常见的 Windows 问题,原生 ws 模块的编译失败。无论如何, `ws` 都有一个备用 JS 实现,npm 应该会使用它。您只需要确保您使用的是 npm 的最新版本即可。为此,您可以
$ npm install -g npm
或者
如果您在更新 npm 时遇到问题,您可以直接访问 NodeJS 下载最新版本。它将包含最新版本的 npm。
更有可能是 Karma 无法找到浏览器二进制文件(执行文件)的位置。您可以通过设置包含正确路径的相应环境变量来解决此问题(例如,Google Chrome 使用 `CHROME_BIN` 环境变量)。查看 [浏览器] 以了解更多信息。
转到捕获的浏览器并单击“DEBUG”按钮(或打开 `http://localhost:9876/debug.html`)并使用 Web 检查器查看发生了什么。(您可能需要刷新 debug.html 页面才能在 Web 检查器打开后启动它。)
`preprocessors` 配置设置中的模式通过 `basePath` 设置解析。有关更多信息,请参阅预处理器。您还可以打开调试日志(在启动 Karma 时使用 `--log-level debug`),Karma 将显示哪些文件已预处理。
首先尝试从您的 `node_modules` 中删除 `karma` 和 `karma-*` 模块(例如 `rm -rf /usr/local/lib/node_modules/karma-*`),然后重新安装 Karma。
确保 Karma 的选项卡处于活动状态。浏览器仅为非活动选项卡提供最少的 CPU。
由于测试设置的复杂性,我们很少在没有重现步骤的情况下修复错误。最好的方法是创建一个 GitHub 项目,安装所有组件并重现错误。