0

我在运行需要 xvfb 服务器的并行构建时遇到问题。我以前使用的是headlessruby​​ gem,但是当某些需要capybara-webkit和 xvfb 服务器的测试套件并行运行时,会出现零星的故障。

我的猜测是他们都试图使用相同的 DISPLAY,所以我尝试设置不同的 DISPLAY 值,然后并行运行它们,但仍然失败。

然后我尝试删除headlessgem 并运行我的测试套件: DISPLAY=localhost:$display_num.0 xvfb-run bundle exec rakewhere $display_numis a previous set bash variable that is different between the two test suites.

然后我得到错误:xvfb-run: error: Xvfb failed to start当它们并行运行时。

任何关于破译这个的帮助都会很棒!

4

1 回答 1

0

这是要点,但最终您需要为headless每个进程启动一个。

这可以通过features/support/javascript.rbgist 中引用的文件有效地完成,相关部分是:

# 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 回答