2011-03-14 70 views
2

我想要黃瓜在開始測試之前在「db/seeds.rb」中加載我的種子數據。不是在每個場景或功能之前,而是在運行測試之前僅進行一次。 而且在每個場景之後,種子必須保留在db中。想要在運行黃瓜之前加載種子數據

這可能嗎?

我試着創建一個文件「features/support/seed_data.rb」,並要求我的db/seeds.rb在那裏,但它似乎並沒有加載文件。我試圖在env.rb中要求我的種子 - 沒有任何影響。

請問,有人可以提出我的解決方案嗎?

在此先感謝!

回答

0

如何從您的seeds.rb文件中提取代碼並將其粘貼到AfterConfiguration塊中的hooks.rb中?

AfterConfiguration do |config| 
    # Your code from seeds.rb 
end 

在配置黃瓜後,應該在運行期間調用once。至少這樣做,你可以確定你是否有包括種子文件的問題。另一個想法是從AfterConfiguration採取seeds.rb並直接把它粘在支持目錄內作爲一個模塊,然後調用它:

# db_seeds.rb 
module DbSeeds 

    def seed_db 
    # Your Code 
    end 

end 

World(DbSeeds) 

#hooks.rb 
AfterConfiguration do |config| 
    seed_db 
end 
+0

非常感謝你。但是這仍然不起作用,因爲在每個場景黃瓜用所有種子清理數據庫之後(。 – 2011-03-15 13:57:48

+0

真正的問題是爲什麼當你播種一次黃瓜時,黃瓜清理數據庫。 – 2011-03-15 14:17:54

1

創建一個在您的支持前的鉤/ hooks.rb文件看起來像這樣:

Before('@load-seed-data') do 
    load File.join(Rails.root, 'db', 'seeds.rb') 
end 

在場景之前測試中,調用掛鉤是這樣的:

@load-seed-data @US49 
Scenario: This is a scenario that needs seed data. 
Given...