2016-08-12 7 views
2

일부 대형 웹 응용 프로그램의 테스트를 작성하는 드라이버로 Polstgeist와 함께 Rspec/Capybara를 사용하고 있습니다.Poltergeist/Capybara/Rspec에서 javascript 오류를 어떻게 기록합니까?

제 문제는 콘솔에 나타나는 메시지를 녹음하고 싶지만 지금까지는 그렇게 할 수 없었습니다.

내가 옵션 js_errorsphantomjs_logger 알고있다,하지만 난 그들과 함께 몇 가지 문제가 있었다 :

  • 내가 js_errors: false 설정하면, 나는 phantomjs_logger에 지정된 파일이 비어 유지;
  • js_errors: true을 설정하면 phantomjs_logger에 지정된 파일에 메시지가 기록되지만 거의 내 사양은 시험중인 탐색 예제와 관련이없는 자바 스크립트 오류로 인해 실패합니다.

모든 js 오류에 대한 사양을 위반하지 않으면 서 콘솔 메시지를 저장할 수있는 방법에 대한 아이디어가 있습니까?

해결 방법 : 개발 작업에 아무런 통제력이 없습니다. 프런트 엔드에서 액세스하는 다양한 환경에서 응용 프로그램의 전체 스택 안정성을 검사하여 모든 자바 스크립트 오류를 ​​제거합니다. 문제의 내가 쓰고있는 스펙은 인터페이스 사용을 손상시키지 않으면 자바 스크립트 에러도 무시한다고 가정한다.

+0

모든 메시지를 보내려면'phantomjs_logger' 옵션을 사용해 보셨습니까? js를 통해'console.log'에? – slowjack2k

+0

예, 말했듯이, phantomjs_logger를 시도했지만 js_errors : true로 설정했을 때만 console.log 메시지를 수신하는 것으로 보입니다. 그리고 그것은 내가하고 싶은 일이 아닙니다. –

답변

4

수 없습니다. PhantomJS 클라이언트는 자바 스크립트 오류 메시지를 잡아서 배열에 추가합니다. 그런 다음 명령이 완료되면 js_errors == true이면 해당 배열이 검사되고 비어 있지 않으면 javascript 오류가 반환되고 테스트에서 오류가 트리거됩니다. 이러한 오류에 액세스하기위한 폴터 게이트스트 (poltergeist)에는 다른 API가 없습니다. 명백히 사용을 해치지 않는 JS 오류를 무시하는 지혜에 대해 관리자와 논의 할 필요가있는 것 같습니다. 잠재적으로 위험한 개발 사례입니다.

+0

poltergeist js 오류 관리에 대한 정보와 진행 방법에 대한 제안을 보내 주셔서 감사합니다. –

관련 문제