webpageupdates에 따르면 최근 버전의 Capybara에서는 sleep
또는 wait_until
이 유효하지 않습니다.카피 바라는 수면을 필요로합니까?
그러나 테스트에 sleep(1)
호출을 추가하면 빠른 컴퓨터에서만 작동하는 테스트 집합이 있습니다.
def unix_wait
case RbConfig::CONFIG['host_os']
when /darwin/
when /linux-gnu/
sleep(1)
end
end
, 내가 늙은 우분투 12.04 쿼드 코어를 가지고 :
describe "dosimeters page" do
before do
click_link("Dosimeter Read History", :match=>:first)
end
...
내가 같이 unix_wait
을 정의한
describe "dosimeters page" do
before do
unix_wait
click_link("Dosimeter Read History", :match=>:first)
end
...
가된다 : 즉, 보이는 테스트입니다 Jenkins에서이 테스트를 실행하는 랩톱으로 unix_wait
호출 없이는 모든 것이 잘 작동합니다. 테스트는 무작위로 우분투 13.10을 실행하는 hexacore 데스크탑과 맥북 프로 랩탑에서 실패했지만, unix_wait
호출을 추가하면 테스트가 통과됩니다.
테스트 실패 자체는로드 실패 (즉, 일부 실행에는 CSS 요소가 누락되었지만 다른 실패에는 표시되지 않음)를 나타내며 테스트중인 것은 실제로 사이트를로드 할 때 작동합니다.
여기에 적절한 조치는 무엇입니까? 테스트 중에는 sleep
을 사용할 수 없으며 wait_until
도 아닙니다. 그러나 수면은 효과가 있지만 내게는 너무 미숙 한 것처럼 보입니다. #synchronized
을 볼까요? 블로그 게시물에서 수집 한 내용에서 click_link
에 전화 할 때 이미 전화가 걸려서 테스트가 여전히 실패하고 있습니다.
여기에 수락 된 프로토콜은 무엇입니까?
내가 중요하다고 생각하기 때문에 추가해야합니다. 이것은 모두 자바 스크립트 테스트입니다. 나는 qt4 (qt5가 아님)에 구축 된 capybara-webkit을 사용하고 있습니다. 나는 디버거 단계로 poltergeist 또는 다른 자바 스크립트 드라이버로 전환하는 것을 고려하고 있습니다.
디버깅을 위해 webdriver를 사용해 볼 수도 있지만 비슷한 문제가 있습니다. –
아약스를 사용할 때 capybara-webkit에서 동일한 문제가 발생했습니다. 폴터 테이스트가이 문제를 해결할 수 있는지는 모르겠지만 시도해 볼 가치가 있습니다. – basgys
보고있는 실패에 대해 더 자세히 설명해 주시겠습니까? 나는 "css elements missing"이 진정으로 수반하는 것이 무엇인지 분명하지 않다. – Shepmaster