Czy kapibara wymaga snu do pracy?

Widocznie,sleep lubwait_until nie są poprawne przy użyciu najnowszych wersji Kapibary, zgodnie zStrona internetowa aktualizacje.

Mam jednak zestaw testów, które działają tylko na szybkich komputerach, jeśli dodamsleep(1) zadzwoń do testu. To jest test, który wygląda tak:

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

staje się

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

gdzie zdefiniowałemunix_wait tak jak:

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

Rzecz w tym, że mam stary laptop Ubuntu 12.04 quadcore z tymi testami na Jenkinsie i wszystko działa dobrze bezunix_wait połączenia. Testy nie powiodły się losowo na sześciokątnym pulpicie z Ubuntu 13.10 i laptopem MacBook Pro, ale jeśli dodamunix_wait zadzwoń, a następnie testy miną.

Same błędy testowe wskazują na błędy ładowania (tj. Brak elementów css w niektórych uruchomieniach, ale nie na innych), a testowane rzeczy faktycznie działają, gdy witryna jest ładowana ręcznie.

Więc jaka jest właściwa akcja tutaj? Widocznie,sleep nie jest dozwolone podczas testów, ani nie jest dozwolonewait_until. Jednak sen działa, ale wydaje mi się bardzo prymitywny. Czy powinienem patrzeć#synchronized? Z tego, co zbieram z tych wpisów na blogu, już dzwonię, gdy dzwonięclick_link, a testy nadal zawodzą.

Jaki jest tutaj przyjęty protokół?

Powinienem dodać, ponieważ uważam, że to ważne: to są wszystkie testy javascript. Używam capybara-webkit zbudowanego na qt4 (nie qt5). Rozważam przejście na poltergeist lub inny sterownik javascript jako krok debugowania.

questionAnswers(2)

yourAnswerToTheQuestion