2012-07-08 3 views
0

Rails 3.1 앱을 쓰고 있는데 오이 피처 파일 세 세트가 있습니다. 개별적으로 실행할 때 :오이 : 각 기능은 개별적으로 전달되지만 함께 사용하지는 않습니다.

cucumber features/quota.feature 
-- or -- 
cucumber features/quota.feature:67 # specifying the specific individual test 

... 각 기능 파일이 정상적으로 실행됩니다. 그러나 함께 실행하면

cucumber 

... 테스트 중 하나가 실패합니다. 그것은 단지 하나의 테스트가 실패하기 때문에 이상합니다. 이 기능의 다른 모든 테스트는 통과합니다 (그 중 많은 기능이 비슷한 기능을 수행합니다). 지형지 물 파일에서이 테스트를 어디에 두어도 상관 없습니다. 그것은 어딘가에있는 첫 번째 테스트 나 길이라면 실패합니다.

개별적으로 실행되거나 전체 기능 파일이 개별적으로 실행될 때도 통과하므로 테스트 자체가 될 수 있다고 생각하지 않습니다. 서로 다른 기능 파일을 함께 실행하는 것과 관련된 효과가 있어야하는 것 같습니다. 무슨 일이 일어날 지 모르는 어떤 아이디어?

답변

3

시나리오 사이에 커플 링이있는 것 같습니다. 실패한 시나리오는 시스템이 일부 상태라고 가정합니다. 시나리오가 개별적으로 실행될 때 시스템이이 상태에 있으므로 시나리오가 전달됩니다. 그러나 모든 시나리오를 실행하면 이전에 실행 된 시나리오가이 상태를 변경하므로 실패합니다.

시나리오를 완전히 독립적으로 만들어야합니다. 모든 시나리오의 작업이 다른 시나리오의 결과에 영향을주지 않아야합니다. Cucumber BookSpecification by Example에서 적극 권장됩니다.

+0

안녕하세요 Andrey, 기능 파일이 개별적으로 실행될 때 각 기능 파일의 모든 시나리오가 작동하므로 시나리오가 아닌 기능 파일 간의 결합 효과가 있어야합니다. 그것은 내가 들어 본 적이없는 것입니다. –

+0

@nothequestionyourelookingfor 다른 기능 파일의 시나리오를 서로 연결할 수 있습니다. –

+1

이 커플 링은 다른 기능으로 시나리오 중 하나를 수행 한 후에 데이터가 올바르게 재설정되지 않아 발생할 수 있습니다. 대부분의 경우, 처음에는 실행되지 않는 이유는 다른 시나리오 중 하나가 데이터를 나쁜 상태로 남겨두고 있기 때문입니다. 또는 cucumber를 호출 할 때 사용하지 않고 별도로 실행할 때 명령 줄 플래그를 사용하지 않도록 확인하는 것이 좋습니다. –

0

나는 비슷한 문제가있어서 근본 원인을 파악하는 데 오랜 시간이 걸렸습니다. @selenium 태그를 사용하여 셀렌 클라이언트에서 JQuery 스크립트를 테스트했습니다. 내 페이지에 POST 요청을 보내는 ajax 호출이 있습니다. 자바 스크립트에 버그가 있었고 게시물 요청이 실패했습니다. (이 기능은 완전하지 않았고 아직 ajax 호출 결과를 확인하기위한 단계를 작성하지 않았습니다.) 이 오류는 Capybara.current_session.server.error에 기록되었습니다. 다음과 같은 비 셀레늄 기능은 카피 바라 내에서 후크 전에 실행되었을 때 Capybara.reset_sessions! 이것은 다음 기능 (들)의 각 시나리오에 대한 무기 호 아니었고 생략으로 오이가 각 단계를보고

def reset! 
    driver.reset! if @touched 
    @touched = false 
    raise @server.error if @server and @server.error 
ensure 
    @server.reset_error! if @server 
end 

@server.error

라고했다. 제 경우의 해결책은 ajax 호출을 수정하는 것이 었습니다. 그래서 Andrey Botalov와 Doug Noel이 옳았습니다. 나는 이전의 특성에서 이월했다. 제기 된 예외가 발견 될 때까지 디버깅을 계속 수행하고 무엇을 생성했는지 조사해야했습니다. 이 정보가 이전 기능에서 이월 한 것을 인식하지 못한 다른 사용자에게 도움이되기를 바랍니다.

관련 문제