如何使用 Xvfb 运行 Firefox 的 Karma?

How to run Karma with Firefox using Xvfb?

我想在无头服务器中使用 Xvfb to run Karma 启动 Firefox。

Karma 需要一个启动器插件来自动启动和停止浏览器。我找到了一个 karma-xvfb-chrome-launcher,但没有一个适用于 Firefox。

安装 Xvfb (Ubuntu) 后,我知道我可以使用以下命令启动 Firefox:

$ xvfb-run firefox <app-under-test-url> 

我不知道如何让 Karma 以这种方式启动 Firefox。

有没有办法为 Karma 提供自定义 start/stop 浏览器脚本?

可以通过Karma.conf.js实现吗?

我该怎么做?

谢谢!

您可以使用 xvfb-run 启动 Karma,它启动的任何浏览器都会 运行 在一个新的 Xvfb 实例中。

在我的 Makefile 中,当我想 运行 我的基于 Karma 的测试时,我有这个命令 运行:

xvfb-run karma start --single-run

xvfb-run 通过启动一个 Xvfb 实例来运行,获取它的显示编号并设置 DISPLAY 环境变量,然后它 运行s 你作为参数传递的命令。这意味着通过 xvfb-run 执行的所有内容(包括从初始进程启动的任何新进程)都使用 xvfb-run 设置的 DISPLAY 值,因此将出现在 Xvfb 实例上xvfb-run 开始了。

正在考虑 Louis 的回答...

因为我在打字稿中使用 Angular 2,所以我在 package.json 文件中添加了以下几行:

"test": "tsc && concurrently \"tsc -w\" \"karma start karma.conf.js\"",
"test-once": "tsc && karma start karma.conf.js --single-run",
"test-xvfb": "xvfb-run npm run test-once",

现在,当我 运行 以这种方式进行测试时:

$ npm run test-xvfb

根本没有打开浏览器window!