2011-07-06 21 views
16

我很懶,我自從我的生產數據庫中有數據可以用於測試通過正在進行的開發,我想知道是否有任何生成燈具的方法。如何根據我的開發數據庫生成燈具?

1.8.7上使用Rails 3

+1

您是否想要從您當前的產品數據庫生成標準測試夾具? –

+0

無所謂,我每天轉儲我的生產數據庫,並通過電子郵件發送給我,並將我的每日備份文件之一用於我的開發數據庫。 – fivetwentysix

回答

-9

你真的可以谷歌這個。 「導軌從數據庫創建夾具」。第一次打:http://snippets.dzone.com/posts/show/2525。但是你會產生我認爲是脆弱的測試。考慮使用夾具替換。像FixjourFactory GirlMachinist。他們會幫助你考慮你在代碼中拋出什麼樣的邊緣案例。只是一個想法。

+17

雖然你的鏈接和使用替代燈具是有用的,「谷歌它」不是。尤其是因爲谷歌現在在這裏領先我們請提供有助於讀者閱讀的答案。鏈接死了,但寫在答案中的文字沒有。謝謝。 – Nate

+3

同意。 OP以「我很懶......」開始,這是我最初的反應。我應該更加謹慎。 –

+2

作爲剛剛遇到這個問題的人,我*做了*谷歌它:谷歌果汁是如此之高,這是我發現的第一個答案。我剛剛閱讀這個元:http://meta.stackoverflow.com/questions/251758/why-is-stack-overflow-so-negative-of-late?cb=1現在我真的感覺到它。 – makdad

19

的問題是舊的,但它似乎仍然相關:是的,有創造從開發數據庫燈具的簡單方法:

class ActiveRecord::Base 
    def dump_fixture 
    fixture_file = "#{Rails.root}/test/fixtures/#{self.class.table_name}.yml" 
    File.open(fixture_file, "a+") do |f| 
     f.puts({ "#{self.class.table_name.singularize}_#{id}" => attributes }. 
     to_yaml.sub!(/---\s?/, "\n")) 
    end 
    end 
end 

將這個在config/initializers文件 - 現在你可以轉儲您的Rails控制檯中的任何ActiveRecord對象,它將自動添加到其各自的燈具文件末尾:

User.first.dump_fixture將燈具數據附加到test/fixtures/users.yml

+0

最好使用'File.open(fixture_file,「a + 「)'所以如果文件不存在,它將被創建。 – Foton

+0

很好的回答。對於那些希望轉儲所有記錄作爲燈具,使用上面的片段:'User.all.map(&:dump_fixture)' – Matt

相關問題