【问题标题】:Unable to run Jasmine tests through Jenkins pipeline无法通过 Jenkins 管道运行 Jasmine 测试
【发布时间】:2025-11-23 00:20:05
【问题描述】:

我有 Jasmine 测试,旨在使用以下命令在 Chrome 上运行 -

karma start --specFileRegistry="DiagramComponent/test/DiagramComponent.specConfig.js" --outputFile="test-reports/test-case-report/NodeMappingCanvas.html"

当我在 Linux 机器上从终端运行时成功运行测试,但通过 Jenkins 管道运行时会导致错误 -

ERROR [launcher]: Cannot start Chrome
     [exec]     Fontconfig warning: "/etc/fonts/fonts.conf", line 86: unknown element "blank"
     [exec] [115058:115058:0911/171053.130462:ERROR:browser_main_loop.cc(1512)] Unable to open X display.

请建议我如何摆脱这种情况。

【问题讨论】:

    标签: linux google-chrome jenkins jenkins-pipeline karma-jasmine


    【解决方案1】:

    Karma 正在尝试打开 Chrome 窗口,由于它在没有窗口环境 (Jenkins) 的操作系统上运行,因此无法打开窗口。

    您需要将 Karma 配置为使用不在窗口中运行的浏览器。它被称为无头浏览器。

    现在最流行的选择是使用 Headless Chrome。 karma-chrome-launcher 支持运行 Headless Chrome。

    在您的 Karma 配置中将 browsers: ['Chrome'] 替换为 browsers: ['ChromeHeadless'] 就足够了。

    【讨论】:

    • 谢谢browsers: ['ChromeHeadless'] 正是我想要的!