2011-09-14 2 views
11

레일이 좋지만 명령 줄에서 작업을 실행하는 데 걸리는 시간은 여전히 ​​고심하고 있습니다.레일 : 한 번에 두 개 이상의 레이크 작업을 실행 하시겠습니까?

때마다 환경을 다시로드하지 않고 여러 개의 레이크 작업을 결합 할 수 있는지 궁금합니다. 마이그레이션에 대한 다음 또 다른 모델을 생성하기위한 예를 들어, 나는 그것이 RSpec에 설치 실행에 레일을로드 10 초 지출

rails generate rspec:install && rails generate model test_model title:string && rake db:migrate 

을 실행하면, 다음 다른 십초는 환경을로드합니다. 세 가지 명령 모두에 대해 동일한 환경을 유지하는 방법이 있습니까?

답변

21

rails-sh gem을 살펴보십시오. Rails 환경을 부팅 한 다음 명령 줄 인터페이스를 제공하므로 명령을 실행할 수 있습니다. 한계를 사용할 때 (나는 당신이 RAILS_ENV를 바꿀 수 있다고 생각하지 않는다), 그러나 당신의 유스 케이스에 대해서는 완벽해야한다. - 내가 그 인식하지 않았다 기절 해요

rake db:migrate && rake db:test:clone_structure 

rake db:migrate db:test:clone_structure 
+0

와우 될 것입니다 : 당신의 명령을 그냥 작업을 긁어하는 경우

, 당신은, 예를 분리하는 공간을 사용할 수 있습니다 . 환상적이고 많은 감사합니다. – PlankTon

+2

Note : 레이크 작업을 공백으로 분리하는 것은 배쉬 연산자 인'&& '처럼 응답이 암시하는 것처럼 보이지만,'; '연산자는 아닙니다. 이전 작업이 오류없이 완료된 경우에만 공간 분리가 작업을 실행합니다. 'bundle exec rake test cucumber'는'test' 작업 중에 실패한 테스트가 없다면'cucumber' 작업 만 실행합니다. –

+0

공간 분리는'&&'와 정확하게 동일하지 않습니다. 한 코드 버전에서'bundle exec rake test cucumber'는 오이 테스트를 실패하지만'bundle exec rake test && bundle exec rake cucumber'는 모든 테스트를 통과시킵니다. (이 코드 버전에서'rake'없이'bundle exec cucumber'가 때때로 (항상 그런 것은 아니지만) 몇몇 테스트를 실패하게하는 것과 관련이있을 수 있습니다.) –

관련 문제