2014-04-19 2 views
0

Rails 4.0에서 4.1로 업그레이드하기 전에 Spring없이 RSpec/Guard를 사용하고 모든 테스트가 녹색 점과 녹색 텍스트 이외의 출력없이 진행되었다. 필자가 필요로하는 다른 것들과 함께 스프링을 업그레이드하고 설치 한 후, 나는 패스 테스트에서 에러를 얻었고 때로는 테스트가 '유일성'에러로 인해 통과하지 못한다. 통과 및 실패 테스트 사이Rails Spring/Rspec/Guard가 Spring 이전에 없을 때 에러를 낸다.

일반적인 오류 : 이제

An error occurred in an after(:all) hook. 
    NameError: uninitialized constant Recipe 
    occurred at /home/user/.rvm/gems/[email protected]/gems/activesupport-4.1.0/lib/active_support/inflector/methods.rb:238:in 'const_get' 

애프터 (모든) 훅은 단순히 모든 관리자 : 와인 객체 (그리고 관리자 :: 와인 객체 has_many 조리법을) 삭제합니다. Manager는 레일 엔진이며 Wine 및 Recipe 모델이 있습니다. Wine 클래스에서는 레시피 상수를 명시 적으로 지정하지 않습니다. 그러나 이전에 말했듯이, Spring을 업그레이드하고 설치하기 전까지는이 오류가 일반적인 RSpec/Guard 테스트에서 나타나지 않았습니다.

다른 실패는 '이미 속성이 적용되었습니다'의 결과입니다. 예를 들어, 표준 'is valid factory'테스트는이 때문에 create()시 실패합니다. 그러나 RSpec에 명시되어 있습니다 :

config.before(:each) do 
    DatabaseCleaner.start 
end 

나는 봄 전에 무작위 테스트에서 이러한 오류를 얻지 못했습니다.

Gemfile은 니펫을 :

group :development, :test do 
    gem 'spring' 
    gem 'rspec-rails' 
    gem 'guard' 
    gem 'guard-rspec', require: false 
    gem 'spring-commands-rspec' 
    gem 'factory_girl_rails' 
    gem 'database_cleaner' 
end 

Guardfile에는 다음이 포함

guard :rspec, cmd:"spring rspec" do 

레일되는 app_root/빈 파일이 포함되어

rails 
rake 
rspec 
spring 

을 ???

답변

0

정말 이상합니다. 이전에는이 ​​문제에 대해 통보받지 못했지만 응용 프로그램은 더 이상 와인과 조리법 간의 HABTM 관계를 확인할 수 없었습니다. join_table 인수를 포함하도록 모델을 업데이트했는데 더 이상 '정의되지 않은 상수'오류가 발생하지 않습니다. 나는 브라우저에서 응용 프로그램을로드하고 더 나은 오류 메시지를 처리해야만이 사실을 알 수있었습니다. 여전히 '중복 항목'문제로 문제가 발생합니다.

또한 각 작업 후에 DatabaseCleaner가 실행되는 것을 고려하면 불필요하다고 생각하는대로 각 모델에서 destroy_all 호출을 제거했습니다.