2010-07-29 39 views
2

我想在設置Rails集成測試期間運行一些自定義SQL以準備遺留數據庫(例如,創建其表,創建任何必需的視圖等),其中不是我schema.rb的一部分(也不存在任何遷移)。運行自定義SQL來準備Rails集成測試

有沒有這樣做的最佳做法?谷歌搜索迄今尚未非常有啓發;-)

沒有任何遷移的原因是,在開發和生產RAILS_ENV數據庫已存在的遺留原因。如果有一種方法僅對RAILS_ENV=='test'運行這些遷移,那也許也有幫助。

回答

0

您可以在命令行上將Rails環境傳遞到Rake。例如,僅在測試環境中運行遷移,這樣做:

rake RAILS_ENV=test db:migrate 
+1

好吧,我是知道的,但也許我失去了一些東西非常明顯的:我如何申報遷移,這只是在測試運行環境? 這同樣適用於schema.rb。 我當然可以放入一些醜陋的'RAILS_ENV =='test''條件,但希望有一個更優雅(和聲明)的方式來做到這一點。 – 2010-07-29 15:38:34