关于 Angular Karma 测试:Angular Karma 测试 – 作为 Chrome 与 ChromeHeadless 的浏览器属性

Angular Karma Testing - browser property as Chrome vs ChromeHeadless

我在一个 Angular 9 项目中工作,我们正在使用 Karma 运行测试。

谁能向我解释将浏览器属性(在 karma.conf.js 中)设置为 Chrome 和 ChromeHeadless 之间的区别?

我看到的唯一真实情况是浏览器设置为 Chrome,然后在我运行测试时会自动打开一个 chrome 窗口,在我编辑测试时保持打开状态(因为我设置了 autoWatch 属性,所以会进行实时更改为 true 并且 singleRun 设置为 false)。当我在终端停止测试时。该窗口将关闭。这对我来说似乎很方便。

然后是 ChromeHeadless,除了我必须自己打开 chrome 窗口(完成后关闭它)之外,它完成了上述所有操作。

这是唯一的区别吗?还有什么其他事情会让我选择一个而不是另一个吗?


通常当您使用像 Jenkins 这样的 CI(持续集成)系统来自动运行测试时,它没有"接口"来运行 Chrome。因此,为了执行这些端到端测试,您需要对浏览器界面进行"模拟"来执行它们。这就是 ChromeHeadless 发挥作用的时候。它完全模拟 Chrome 浏览器的行为,但没有界面。