2013-04-04 55 views
0

運行並行測試套件我在與平行的問題,建立那些需要xvfb的服務器上運行。我以前使用headless紅寶石的寶石,但是當某些測試套件都需要capybara-webkit和xvfb的服務器並行運行有零星的故障。持續集成 - 需要xvfb的

我的猜測是他們都試圖使用相同的顯示,所以我試圖設置不同的顯示值,然後並行運行它們,但仍然失敗。

然後我試圖消除headless寶石與運行我的測試套件: DISPLAY=localhost:$display_num.0 xvfb-run bundle exec rake其中$display_num是事先設定的bash的變量,它是兩個測試套件之間的不同。

然後我得到的錯誤:xvfb-run: error: Xvfb failed to start當他們在平行運行。

上破譯這將是偉大的任何幫助!

回答

0

Here is the gist,但最終您需要爲每個進程啓動一個headless

# 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 

這有效地與features/support/javascript.rb文件中的要點參考,相關部分正在做