2011-03-31 3 views
2

"rspec"과 같은 사양을 실행할 때. 명령 행에서 필자가 스펙에서 해당 코드를 호출하면 콘솔에 puts 또는 logger.info를 볼 수 있습니다. 그러나 logger.info 또는 puts에 대한 호출이 테스트중인 컨트롤러에 있으면 test.log 파일이나 콘솔 창으로 출력되지 않습니다.RSpec을 사용하고 puts 또는 logger.info를 작동 시키려면

내가 RSpec에 2 레일 또한 3.0.4

을 사용하고 있는데, 이것은 refinerycms 사이트입니다, 그러나 우리는 우리가 테스트하려는 정유 CMS 외부 컨트롤러의 몇 가지있다. 일반적인 사이트에서 puts 나 logger.info를 실행하면 RSpec을 실행해도 정상적으로 작동하는 것 같습니다.

감사합니다.

답변

1

좋아, 결국 우리는 이것을 알아 냈습니다.

Refinery에서 기본 사용자를 생성해야하거나 프론트 엔드 페이지를 누르지 않아도됩니다. 처음 실행하면 사용자에게 기본 관리자 로그인을 작성하라는 메시지가 표시됩니다. 그래서 우리가 테스트를 진행할 때, 우리 코드는 결코 타격을 입지 않았습니다. Refinery는 테스트 시간 동안 "브라우저"를 "첫 번째 사용자 작성"페이지로 재 지정하고있었습니다.

기본 사용자가있는 시드를 만든 다음 모든 것이 다시 작동했습니다. 그래서 문제는 정련소 나 rspec에서 작동하지 않는 "puts"또는 "logger.info"를 수행하는 것이 결코 아닙니다. 테스트를하는 동안 우리 컨트롤러에 도달하지 못했습니다.

관련 문제