Как запустить тесты rspec, используя селен через cron - PullRequest
2 голосов
/ 02 сентября 2011

У меня проблемы с запуском тестов rspec через cron. Я использую селен для доступа к Firefox и проверки входа на страницу. Все мои файлы работают правильно, когда выполняются вне cron. Судя по тому, что я прочитал, проблема может заключаться в том, что cron нужна среда отображения для запуска таких программ, как firefox. Вот где я застрял, как я могу настроить среду отображения для Selen, чтобы запускать Firefox из Cron.

Я попытался настроить дисплей несколькими способами в 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)>'

Мне интересно, есть ли способ изменить код селена для запуска firefox с указанным дисплеем. Или если я что-то пропустил по пути. Любая помощь будет высоко ценится.

1 Ответ

3 голосов
/ 02 сентября 2011

Сначала вы должны запустить Xvfb. Я рекомендую вам использовать headless gem, который упрощает взаимодействие с Xvfb. Также обратите внимание на readme, в котором есть похожие варианты использования.

Также взгляните на это сообщение в блоге о настройке Дженкинса и безголовых.

P.S: Просто предложение - не используйте cron для этой цели, используйте инструмент CI. Я рекомендую Jenkins CI , он может выполнять сборки как путем опроса SCM, так и периодически (ваш точный вариант использования).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...