【问题标题】:Running selenium tests in ruby with Jenkins使用 Jenkins 在 ruby​​ 中运行 selenium 测试
【发布时间】:2014-11-22 21:26:24
【问题描述】:

我正在尝试在 Mac 上运行的本地计算机上设置 CI。为此,我使用了 Xubuntu 虚拟机、Jenkins 和一些简单的 selenium 测试。 tests on github

我全新安装了 Xubuntu,我使用官方手册安装了 Jenkins。 在 Jenkins 中,我安装了一些插件(git、ruby、rake、rbenv)。 在作业配置中,我使用 rbenv wrapper(2.1.0) 忽略操作系统版本,我也使用这个 gemlist:

bundler,rake,rspec,selenium-webdriver,capybara 

并使用

运行该作业
rspec spec

当我运行这项工作时,我每次测试都会收到类似的东西:

Selenium::WebDriver::Error::WebDriverError: 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1:7055)

完整输出is here

看起来 jenkins 用户无权访问显示来运行/查看 firefox。 有人知道如何让它工作吗?

【问题讨论】:

    标签: ruby selenium rspec jenkins


    【解决方案1】:

    我们最近在工作中遇到了这个问题,实际上选择了Capybara 并将驱动程序设置为poltergeist。这似乎比试图弄清楚如何在我们的 VM 上运行 FF 更好。

    也就是说,按照here 的说明,我们能够运行一个小型测试套件

    【讨论】:

    • 我想出了如何使用 xvfb 无头运行我的测试。但我有兴趣使用 UI 运行它们。
    【解决方案2】:

    答案并不像我想的那么简单。 问题是 jenkins 服务无法访问显示(当它通过本机包安装时)。这就是为什么当我尝试启动 Firefox 时它会抛出一个错误。试试:

    $ sudo su - jenkins && firefox
    

    所以它需要访问显示才能成功启动浏览器。 我就是这样做的:

    1. 首先,我使用了here 的回答表单,我将其更改为我的本地用户。

    2. 然后我将 xvfb 插件安装到 Jenkins,并在我的构建作业中预设显示为“0”——这是我的实际用户显示。使用该选项,我的所有测试都将“无头”运行,但会在实际显示上运行。

    这可能不是解决我的问题的最佳方法,但它绝对适合我。

    【讨论】:

      猜你喜欢
      • 2013-01-31
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 2013-08-19
      • 2017-10-08
      • 1970-01-01
      相关资源
      最近更新 更多