2013-06-25 178 views
0
class CreateUsers < ActiveRecord::Migration 
    def change 
    create_table :users do |t| 
     t.string :name 
     t.timestamps 
    end 

    # Create sample User 
    User.create :name => "TestUser"  
    end 
end 

當運行rake db:createrake db:migrate命令記錄爲什麼不進入軌測試數據庫

在開發數據庫它創建樣本用戶,但不是在測試數據庫。我也希望這個用戶在測試數據庫中。任何原因?

也試過rake db:migrate RAILS_ENV=test

+0

您的個人資料可能沒有在測試數據庫足夠的權限。 – vamosrafa

+1

嘗試'rake db:migrate RAILS_ENV = test'。有沒有錯誤信息? – Bjoernsen

+0

是的我試過這個命令'rake db:migrate RAILS_ENV = test',但它只是遷移模式不會在測試數據庫中創建示例用戶。 – Ashwini

回答

1

首先,您應該運行以下命令rake db:test:prepare以「準備」測試數據庫。

最後,如果您希望在數據庫中添加新記錄,我建議使用以下文件db/seeds.rb

db/seeds.rb文件:

User.create(name: "TestUser") 

運行:

rake db:seed 
rake db:seed RAILS_ENV=test # for test env 
0

如果你正在測試用戶爲什麼不創建一個夾具或使用rspec來測試這樣的東西?上面的代碼是不好的做法。我會這樣做

遷移文件。

def self.up 
    create_table :users do |t| 
     t.string :name 
     t.timestamps 
    end 
    end 

根據您的測試棧我會建立像這樣(yml fixture

david: 
name: David Smith 

你也可以使用與工廠女孩,這使得很多測試中軌容易RSpec的固定裝置。

相關問題