0

xvfb サーバーを必要とする並列ビルドの実行に問題があります。以前はheadlessruby​​ gem を使用していましたがcapybara-webkit、xvfb サーバーの両方を必要とする特定のテスト スイートを並行して実行すると、散発的にエラーが発生しました。

私の推測では、両方とも同じ DISPLAY を使用しようとしていたため、異なる DISPLAY 値を設定して並列に実行しようとしましたが、それでも失敗しました。

headless次に、 gem を 削除してテスト スイートを実行しようとしましDISPLAY=localhost:$display_num.0 xvfb-run bundle exec rake$display_num

次に、エラーが発生します:xvfb-run: error: Xvfb failed to startそれらが並行して実行されたとき。

これを解読するための支援は素晴らしいでしょう!

4

1 に答える 1

0

ここに要点がありますが、最終的にはプロセスごとに 1 つ起動する必要がありheadlessます。

これはfeatures/support/javascript.rb、要点で参照されているファイルを使用して効果的に行われます。関連するセクションは次のとおりです。

# Unnecessary on mac
if (!OS.mac? && !$headless_started)

    require 'headless'
    # allow display autopick (by default)
    # allow each headless to destroy_at_exit (by default)
    # allow each process to have their own headless by setting reuse: false
    headless_server = Headless.new(:reuse => false)
    headless_server.start

    $headless_started = true
    puts "Process[#{Process.pid}] started headless server display: #{headless_server.display}"
end
于 2013-08-21T00:16:40.533 に答える