테스트 환경에서만 실행해야하는 레이크 태스크가있는 Rails 3 gem이 있습니다. 다른 환경에서 실행하는 것은 실제로 의미가 없습니다.테스트 환경에서 gem 태스크를 자동으로 실행합니다.
Rake가 Rails 시스템을로드하여 내 작업을 찾았습니다. 따라서 Rails는 이미 "개발"환경 (또는 사용자가 지정한 환경)에로드되어 있습니다. 이것은 제대로 사용자가 수행해야 내 레이크 작업을 실행하기 위해 의미
RAILS_ENV=test rake mytask
내 작업 만이 내가 차라리 사용자가 바로 입력 할 수있을 것 같은 짜증나는 "테스트"환경에서 의미가 있기 때문에 :
rake mytask
이 어떻게 시험과 유사합니다 단위 테스트 : 함수 (Functionals)가 자동으로 테스트 환경을 가정하고 사용자가 명령 줄에서 RAILS_ENV = 테스트를 지정할 필요가 없습니다. 그래서 문제는 Rails가 테스트 환경으로 전환되도록 테스트를 수정하는 방법입니다.
나의 현재 해결 방법은 다음과 같습니다
Rails.env = 'test'
ActionMailer::Base.delivery_method = :test
require Rails.root.join('test/test_helper')
이 다소을 작동하는 것 같다하지만 여전히/development.log 파일을 기록 할 로깅 나는 아직도 실제로 "개발"설정을 실행 생각합니다. 아무도 아이디어가 없나요? Rails 자체에서 테스트 작업을 정의하는 방법을 보면 내가 볼 수있는 방법을 공개하지 않습니다.
https://github.com/rails/rails/blob/master/railties/lib/rails/test_unit/testing.rake
Genius! 단순하고 다른 작업으로 어지럽히 지 않은 한 작업을 피하기 위해 포크 할 필요가있는 또 다른 문제를 해결합니다. 소중한 답변을 드리겠습니다. https://github.com/eric1234/test_inline/commit/fe3da7efa3a2cdb7824c23cfa41697b0ceb9e8e2 –
에서 제이미 웡 최근 코멘트 신용 http://stackoverflow.com/questions/3596431/element-update- : 나는 커밋에 당신의 신용을 주셨 는가 is-not-a-function-rails-3-jquery/3611339 # 3611339 –