1

테스트 환경에서 실행되어야하는 태스크를 실행할 때 개발 중입니다. 여기에는 rake test:(units/functionals/integration)rake db:test:prepare이 포함됩니다. 부작용은 테스트를 실행할 때마다 데이터베이스를 덮어 쓰는 것입니다. 나는 개발 데이터베이스의 이름을 바꾸 었는데, 지금은 오래된 데이터베이스 (database.yml에있는 데이터베이스)를 찾을 수 없다는 불평을 계속합니다. 환경은 내 application.rb 상단의 require 'rails'에서 개발로 설정됩니다. 나는 일종의 간단한 구성을 놓치고 있습니까?개발 환경에서 실행중인 모든 테스트 관련 태스크 - Rails 3

편집 : 내 테스트를 실행하면 RAILS_ENV=test이 추가되어 테스트 환경에서 실행됩니다. 그러나 마이그레이션이 보류 중이기 때문에 실제로 실행할 수 없습니다 (모두). rake db:test:prepare RAILS_ENV=test을 실행하면 동일한 보류 - 이전 오류가 발생합니다.

업데이트 : 데이터베이스가 마이그레이션되고 테스트가 진행됩니다. 난 아직도 RAILS_ENV=test 내 테스트마다 실행 느낌은 그것을

업데이트를 수행 할 수있는 올바른 방법이 아니다 : 나는 '시험'에 기본값으로 railties에 def env을 변경하는 경우, 환경이 테스트 될 것을 발견했다. 당신이 카피 바라를 사용하고 카피 바라 테스트 인스턴스를 부팅하지 않고 그것을 사용합니다 서버가 개발 모드에서 실행 레일이있는 경우 즉

def env 
    @_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development") 
end 

답변

0

이 솔루션은 대신에 내가 시도했던 다른 옵션의 ENV["RACK_ENV"]을 사용하는 것이 었습니다. 나는 왜 다른 것들이 작동하지 않았는지 여전히 확신하지 못한다. 그러나 나는이 문제를 풀어 보겠다. 나는 시험 사용하고

0

변경하여 spec_helper

에서 ENV = "test"이 라인 ENV ||= "test"입니다.

수정 사항

는 여기에서 찾을 수 있습니다 :

How to use the test database with Capybara?

+0

그래서 간단 ... : 단위,하지만 내 test_helper의 상단에, 나는'ENV [ "RAILS_ENV"] = "테스트"','RAILS_ENV = "테스트를 시도했다 "'및''ENV ="test "'를 사용하십시오. 아무도 작동하지 않는 것 같습니다. 또한, 나는 동시에 서버를 운영하지 않는다 (나는 생각하지 않는다). 나는 '최고'를 달렸고 레일 서버처럼 보이는 것을 보지 못했습니다. 또한 링크 된 페이지에서 수정을 시도했지만 아무런 차이가 없었습니다. –

관련 문제