为什么 karma-runner 需要一个浏览器来进行 Angular 单元测试

Why does karma-runner needs a browser for Angular unit test

我想了解为什么 karma 运行 需要浏览器来 运行 Angular 单元测试。我想强调 "WHY".

我试图寻找答案,但我发现的只是建议使用 phantomjs 或无头 chrome 等,而不是为什么需要它的答案。我很好奇,想知道为什么。

出于同样的原因Java 单元测试需要 JRE:浏览器正在执行您的 javascript 编译代码

因为 Karma 设计 执行 源代码 针对 测试代码 浏览器.

来自官方文档 > How It Works

Karma is essentially a tool which spawns a web server that executes source code against test code for each of the browsers connected.

实际上,karma mailing list, asking Can tests be run without a browser?, whose answer posted by Vojta Jina (contributor) 状态中发布了一个问题:

Karma works only with browsers, so use PhantomJS if you want it to be headless. We don't use it as Chrome or Safari are faster than PhantomJS.