2013-04-04 43 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文件中的要点参考,相关部分正在做