2011-09-01 9 views
2

cronでrspecテストを実行する際に問題があります。私はセレンを使ってfirefoxにアクセスし、ページにログインしてテストしています。私のすべてのファイルは、cronの外で実行されたときに正しく動作します。私が読んだところでは、問題はcronがfirefoxのようなプログラムを走らせるためのディスプレイ環境を必要とすることかもしれません。ここで私は立ち往生しています。セレンのためのディスプレイ環境を設定してcron内からfirefoxを起動するにはどうしたらいいですか?cronによるセレンを使用したrspecテストの実行方法

私はディスプレイの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を実行するためのセレンのコードを変更する方法がある場合、私は思ったんだけどさ取得fiedディスプレイ。私は途中で何かを逃したかどうか。どんな助けでも大歓迎です。

答えて

3

まずXvfbを起動する必要があります。 headless gemを使用してXvfbとのやりとりを簡単にすることをお勧めします。同様のユースケースを持つreadmeも見てください。

また、には、ジェンキンスとヘッドレスの設定についてもご覧ください。

P.S:単なる提案です。このような目的のためにCIツールを使用しないでください。 Jenkins CIは、SCMと定期的に(正確なユースケースを)ポーリングすることによってビルドを行うことができます。

関連する問題