2011-09-02 5 views
1

저는 Ruby on Rails 3 튜토리얼을 읽었으며 지침에 따라 테스트를 위해 rspec을 사용하기 위해 레일즈 앱을 설정했습니다. 내가 지시를받을 때마다 필자는 새로운 테스트를 만들었고 테스트는 자동 테스트 및 스포크를 사용하여 자동으로 실행되었습니다. 모든 것이 잘 작동하는 것처럼 보였습니다. 그럼 몇 가지 코드를 테스트하기 위해 두 번째 응용 프로그램을 만들었지 만이 명령을 내 두 번째 응용 프로그램에서 테스트의 몇 가지를 실행했을 때 :rspec이 다른 앱에서 테스트를 실행합니다.

$ bundle exec rspec spec/

... 실행 첫 번째 응용 프로그램에 대한 테스트합니다. 한 앱에서 rspec을 실행하면 다른 앱에서 테스트를 실행할 수 있습니까? 다른 디렉토리로 cd'ed, 두 번째 응용 프로그램으로 cd'ed, 다시 테스트를 실행했지만 같은 일이 일어났습니다.

슬픈 상태를 바로 잡기 위해 컴퓨터의 모든 창을 닫은 다음 컴퓨터를 다시 시작했습니다. 내 컴퓨터를 다시 부팅 후, 나는 하나 개의 터미널 창을 열고 두 번째 응용 프로그램의 디렉토리에 cd'ed, 다시 한번 나는 명령 발행 :

$ bundle exec rspec spec/

이 지금 당신은 할 수 없습니다 ", 더 많은라는 오류를 하나 이상의 Rails :: Application (RuntimeError) ":

No DRb server is running. Running in local process instead ... /Users/me/.rvm/gems/[email protected]/gems/ railties-3.0.9/lib/rails/application.rb:63:in `inherited': You cannot have more than one Rails::Application (RuntimeError)

내가 뭘 놓치고 있나? 첫 번째 앱에서는 설정이 힘들었고 두 번째 앱에서는 동일한 설정을 반복하려했지만 테스트를 실행할 수는 없었습니다. 두 앱 모두 동일한 젬 파일을 가지고 있습니다.

osx 10.6.7

+0

내 문제는 내 응용 프로그램의 이름과 관련이 있다는 결론에 도달했습니다.이 응용 프로그램은 test_app입니다. 다른 앱을 만들고 광범위한 설정을 실행 한 후 이제 rspec 테스트를 실행할 수 있습니다. 내 test_app을 작동시키려는 시도에서 gemset을 삭제하고 레일 및 모든 보석을 다시 설치하려고 시도했지만 spec/spec_helper.rb 파일을 면밀히 검사했지만 결코 작동 할 수는 없었습니다. 오류 : ''inherited ': 두 개 이상의 Rails :: Application (RuntimeError)를 가질 수 없습니다.' – 7stud

+0

앱 이름이 아닙니다. test_map이라는 또 다른 앱을 만들었고 그 앱에 대한 간단한 테스트를 설정했고 오류없이 실행되었습니다. 문제가있는 test_app에 대한 gemset을 적어도 10 번 삭제하고 설정을 시작했지만 운이 없다. – 7stud

답변

0

앱의 이름을 test_app로 지정할 수 있습니다. 그것은 아마 drb/spork로 뭔가 있습니다. spec_helper.rb를 게시하십시오. 또한 spec_helper.rb에서 drb 옵션을 제거하고 Spork 설정을 주석 처리하고 prefork 블록에있는 내용을 spec_helper 파일의 맨 아래로 복사하십시오. 번들 exec없이 rspec spec을 실행하십시오. 그래도 작동하지 않으면 rspec/spec/some_file.rb를 사용하여 하나의 테스트를 실행하십시오.

관련 문제