1

当我们运行角度单元测试时,它会启动 chrome 浏览器或 karma.config.js 中提供的浏览器。为什么浏览器需要以及在运行角度单元测试时到底发生了什么。

4

1 回答 1

5

正如我们所知,有三个主要组件协同工作来帮助我们用 Angular 编写单元测试。他们是

业力

Karma 本质上是一个工具,它生成一个 Web 服务器,该服务器针对连接的每个浏览器的测试代码执行源代码。对每个浏览器的每个测试的结果都会通过命令行检查并显示给开发人员,以便他们可以看到哪些浏览器和测试通过或失败。

可以通过访问 Karma 服务器正在侦听的 URL(通常为http://localhost:9876/ )手动捕获浏览器,也可以通过让 Karma 知道在运行 Karma 时启动哪些浏览器来自动捕获浏览器。Karma 还监视配置文件中指定的所有文件,并且每当任何文件更改时,它都会通过向测试服务器发送信号来通知所有捕获的浏览器再次运行测试代码来触发测试运行。然后每个浏览器将源文件加载到 IFrame 中,执行测试并将结果报告回服务器。

服务器从所有捕获的浏览器中收集结果并将它们呈现给开发人员。

茉莉花

Jasmine 是一个用于测试 JavaScript 代码的行为驱动开发框架。它不依赖于任何其他 JavaScript 框架。它不需要 DOM。它有一个干净、明显的语法,所以你可以很容易地编写测试。茉莉花由三个主要部分组成。它们是测试套装测试规范测试期望

角度测试工具

这些是 Angular 团队引入的实用程序类和函数,用于帮助开发人员为 Angular 编写单元测试。就像测试组件模板一样。


当我们运行 Angular 单元测试时,它会启动 Chrome 浏览器或 karma.config.js 中提供的浏览器。为什么浏览器需要以及在运行角度单元测试时到底发生了什么。

所以现在你应该知道当我们ng test在 Angular 项目中运行命令时发生了什么。

运行命令 angular 后,将在watch 模式下构建应用程序并启动 karma 测试运行器。然后 karma 将针对源代码执行每个测试用例,并通过命令行和浏览器显示输出。(大多数人发现这个浏览器输出比控制台日志更容易阅读)。

于 2018-06-19T10:45:20.537 回答