【问题标题】:How to run rspec tests using selenium through cron如何通过 cron 使用 selenium 运行 rspec 测试
【发布时间】:2011-09-02 20:42:09
【问题描述】:

我无法通过 cron 运行 rspec 测试。我正在使用 selenium 访问 Firefox 并测试登录到页面。在 cron 之外执行时,我的所有文件都可以正常工作。根据我的阅读,问题可能是 cron 需要一个显示环境来运行像 firefox 这样的程序。这就是我卡住的地方,如何为 selenium 设置显示环境以从 cron 中启动 firefox。

我已经尝试在 crontab 中设置显示的几种方式..

*/25 * * * * /home/justin/test.sh --display=:0 > testlog

*/25 * * * * DISPLAY=:0; /home/justin/test.sh > testlog;

我也试过在脚本中设置它..

#!/bin/sh

cd /home/justin/widget_ui_testing/

DISPLAY=:0

/home/justin/.rvm/bin/rvm exec /home/justin/.rvm/gems/ruby-1.9.2-p290/bin/rspec 
-fdoc /home/justin/widget_ui_testing/spec/requests/log_in_spec.rb

我不断收到的错误消息是

Selenium::WebDriver::Error::WebDriverError:
unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)
# ./spec/requests/log_in_spec.rb:22:in `block (2 levels) in <top (required)>'

我想知道是否有一种方法可以更改 selenium 的代码以使用指定的显示运行 firefox。或者,如果我一路上错过了什么。任何帮助将不胜感激。

【问题讨论】:

    标签: ruby rspec continuous-integration cron


    【解决方案1】:

    你必须先启动 Xvfb。我建议你使用headless gem,它可以简化与 Xvfb 的交互。另请查看自述文件,它有类似的用例。

    还可以看看这个blog post关于设置 Jenkins 和 headless 的信息。

    P.S: 只是一个建议——不要使用 cron 来达到这个目的,使用 CI 工具。我推荐 Jenkins CI 它可以通过轮询 SCM 和定期(您的确切用例)来构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 2011-04-28
      • 2011-10-07
      • 1970-01-01
      相关资源
      最近更新 更多