2014-04-20 6 views
5

capybara/capybara-webkit을 사용하는 Javascript 사양이 아닌 Javascript 사양이 있습니다.Javascript 모드가 아닌데도 내 Javascript 종속 기능 사양이 전달되는 이유는 무엇입니까?

비 Javascript 모드에서 실패 할 것으로 예상되는 테스트가 일부 있지만 통과하고 있습니다. Javascript를 끈 상태에서 브라우저에서 기능을 시험해 보았는데 기능이 실제로 예상대로 작동하지 않습니다. 그러나 Capybara에서는 작동합니다.

또한 개별 테스트에 js: false을 추가하여 설정을 숨긴다는 것을 확인했습니다. 사양은 여전히 ​​통과됩니다.

셀레늄 보석은 내 Gemfile에 포함되어 있지 않습니다.

+2

웹캠 드라이버가있는 capybara가 Javascript를 실행하는 동안 Rack :: Test 드라이버 (기본값)로 capybara가 Javascript를 실행하지 않는 방법입니다. 즉, 테스트가 실패하지 않는 이유를 알 수 없습니다. 다른 사람이 도움을 줄 수 있도록 질문에 코드 나 구성에서 무엇을 추가 할 수 있는지 생각해 볼 수 있는지 확인하십시오. –

+0

당신의'features/support/env.rb'을 보여주세요. 지금 귀하의 질문을 읽고, 당신은 항상 capybara - 웹킷을 사용하고, 그것은 자바 스크립트를 완벽하게 잘 실행됩니다. – nathanvda

답변

2

두 가지 가능성이 있습니다. 테스트가 맞지만 예상치 못하게 통과 한 이유가 있거나 테스트가 올바르지 않고 Javascript로 실행했을 때 잘못된 이유로 전달됩니다.

모두 가능성에 어떻게 적용되는지에 대한 디버그를위한 몇 가지 제안 :

  • 를 사용하여 디버거를. (가지고있는 경우 배운 것을 알려주십시오.)

  • 하나의 사양에서 레일스 로그를보고 어떤 컨트롤러 동작이 어떤 순서로 수행되는지 확인하십시오.

  • save_and_open_page을 사용하여 페이지를 스냅 샷하고 스펙이 사용자가보고있는 것을 통과해야하는지 확인하십시오.

다시 확인 자바 스크립트로 실행할 때 테스트를 :

  • 대신 삐 - 웹킷 드라이버의 the poltergeist driver로를 실행합니다. capybara-webkit 및 can be configured보다 더 좋은 오류 메시지를 제공하여 Javascript 오류 메시지를보고합니다.

  • save_screenshot을 사용하여 페이지의 실제 스크린 샷을 찍은 다음 일부 콘텐츠가 화면에 보이지 않아 스펙이 가짜 이유를 전달하지 않는지 확인하십시오. 당신이 RSpec에 자바 스크립트를 실행되고 있는지 여부를 확인하려면

하는 카피 바라 - 웹킷 또는 phantomjs 실행중인 프로세스가 있는지 여부를 확인하기 위해 ps를 사용합니다.

+0

감사합니다. 이것은 도움이 될 수 있습니다. 그러나 나는 심령 술사에게 swiching의 과정에서 붙어있어, 어쩌면 당신도 도울 수 : http://stackoverflow.com/questions/24004130/ –