作爲一種學習練習,我正在使用Sinatra,Datamapper和RSpec構建一個練習應用程序。我正在使用this template,這基本上是所有上述的樣板。從開發數據庫中分離Sinatra應用程序的測試數據庫?
我遇到的問題是RSpec和Datamapper似乎配置的方式,每次運行測試數據庫相關功能的規格時,這些測試直接更改我的開發數據庫而不是測試數據庫。
例如,我希望在運行規範的其餘部分之前創建一些數據庫對象...
before(:all) {
Region.new(:country => "Canada", :country_code => "CA").save
ProductLine.new(:reference => "Molders").save
Product.new(:name => "The Black Molder").save
Cart.new(:price => 25.95).save
}
但每次運行RSpec的時間,上述元素被添加到我的開發數據庫。
爲什麼不是生成測試數據庫呢?如何讓測試數據庫正常工作?
這看起來很像this issue here,除了Sinatra而不是Rails。
如果有任何幫助,我的代碼可以看到here。
嘿,這個伎倆!謝謝你的回答:) – 2012-03-19 07:27:21
謝謝,我在各種地方放了'ENV ['RACK_ENV'] ='test'',並且爲什麼它沒有選擇它而感到沮喪 - 在閱讀你的答案之後,我把它放在**之前'spec_helper.rb' **的頂部'require'sinatra'',現在它可以工作! – Shevaun 2012-11-27 03:23:37
非常感謝。這讓我瘋狂。 – 2014-07-17 14:46:15