Капибара требует сна, чтобы работать?

По-видимому,sleep или жеwait_until не действительны при использовании последних версий Capybara, в соответствии сстраница интернета Обновления.

Тем не менее, у меня есть набор тестов, которые работают на быстрых машинах, только если я добавлюsleep(1) вызов к тесту. То есть тест, который выглядит так:

describe "dosimeters page" do
  before do
    click_link("Dosimeter Read History", :match=>:first)
  end
...

становится

describe "dosimeters page" do
  before do
    unix_wait
    click_link("Dosimeter Read History", :match=>:first)
  end
...

где я'мы определилиunix_wait как:

def unix_wait
  case RbConfig::CONFIG['host_os']
  when /darwin/
  when /linux-gnu/
    sleep(1)
  end
end

Дело в том, что у меня есть старый четырехъядерный ноутбук Ubuntu 12.04, который запускает эти тесты на Jenkins, и на нем все хорошо работает безunix_wait звонки. Тесты случайно провалились на рабочем столе hexacore под управлением Ubuntu 13.10 и на ноутбуке MacBook Pro, но если я добавлю вunix_wait позвоните, затем испытания пройдут.

Сами тестовые сбои указывают на сбои загрузки (т. Е. Элементы css отсутствуют на некоторых запусках, но не на других), а тестируемые объекты действительно работают, когда сайт загружается вручную.

И что'Соответствующее действие здесь? По-видимому,sleep ISN»не допускается во время тестированияwait_until, Тем не менее, сон работает, но он кажется мне очень грубым. Должен ли я смотреть на#synchronized? Из того, что я собираю из тех сообщений в блоге, это 'мне уже звонят, когда я звонюclick_linkи тесты все еще не пройдены.

Какой протокол здесь принят?

Я должен добавить, потому что я думаю, что этоВажно: это все тесты javascript. Я'используя капибара-webkit, построенный на qt4 (не qt5). Я'Я рассматриваю переключение на poltergeist или другой драйвер javascript в качестве шага отладки.

Ответы на вопрос(2)

Ваш ответ на вопрос