【问题标题】:Running karma tests in headless Firefox browser not working on Jenkins在无头 Firefox 浏览器中运行业力测试不适用于 Jenkins
【发布时间】:2018-03-28 12:24:08
【问题描述】:

第一次问关于 SO 的问题。请善待。我会很乐意接受问题反馈。

我有一个在我没有 root 访问权限的 openSUSE Linux 机器上运行的 Jenkins 实例。我已经为 Jenkins 配置了一个自定义工具安装,该安装从 https://ftp.mozilla.org/pub/firefox/releases/56.0.1/linux-x86_64/en-US/firefox-56.0.1.tar.bz2 拉入 Firefox 56.0.1

我有一个基于 Angular CLI 构建的 Angular 应用程序。这是我的 karma.conf.js 的相关部分:

browsers: ['FirefoxHeadless'],
singleRun: true,
customLaunchers: {
  'FirefoxHeadless': {
    base: 'Firefox',
    flags: [
      '-headless',
    ],
  }

我的 Jenkins 有一项工作,它使用带有 -headless 标志的 Firefox 56.0.1 拉取 Angular 应用程序并运行 ng test。但是,它失败并显示以下反馈:

ERROR [launcher]: [39mCannot start Firefox

(process:3050): GLib-CRITICAL **: g_slice_set_config: assertion 
'sys_page_size == 0' failed
Error: no display specified

对此错误的研究表明需要为 Selenium 运行 xvfb 并设置 DISPLAY 环境变量,以便 Firefox 可以连接到该显示器。由于这应该是无头的,我不认为应该需要 xvfb,因为运行无头不需要图形显示(我不想尝试在我没有 root 的机器上安装 xvfb进入)。添加DISPLAY 环境变量只会将错误更改为cannot open display: :10

如何让我的 jenkins 实例在无头版本的 Firefox 中运行业力测试?

【问题讨论】:

标签: firefox jenkins karma-runner opensuse headless-browser


【解决方案1】:

我在搜索为什么 Firefox 作为浏览器在 Windows 上运行但在我的非 GUI linux 构建服务器上运行时遇到了你的答案。看到您将自定义浏览器启动配置命名为 FirefoxHeadless 让我记得我以前听说过这样的预设: Firefox launcher for Karma 支持一些现成的启动配置 这将使用正确的启动选项启动 Firefox:

Firefox
FirefoxHeadless
FirefoxDeveloper
FirefoxDeveloperHeadless
FirefoxAurora
FirefoxAuroraHeadless
FirefoxNightly
FirefoxNightlyHeadless

该软件包可通过NPM 获得。使用它可能会为您和其他人省去额外启动配置的麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2013-06-08
    相关资源
    最近更新 更多