1
當前嘗試使用水豚/ rspec /工廠女孩測試多個數據庫,雖然有我的數據庫清理問題。database_cleaner,factory_girl和多個數據庫 - 配置
查詢錯誤:
': Mysql2::Error: Duplicate entry '1503' for key 'PRIMARY': INSERT INTO `users`
Facilities_spec.rb
feature "User with facilities" do
@current_user = FactoryGirl.create(:user_with_facility)
scenario 'A user can perform a walk-through', :js => true do
login_as
visit '/'
expect(page).to have_text "Our records indicate that you have access to 1 facilities:"
...
end
@current_user = FactoryGirl.create(:user_with_facility)
scenario 'The quick-form requires first_name, last_name, and dob', :js => true do
login_as
visit '/'
expect(page).to have_text "Our records indicate that you have access to 1 facilities:"
...
end
end
rails_helper.rb
cleaner = DatabaseCleaner[:active_record,{:connection => :emp_portal_test}]
rt_cleaner = DatabaseCleaner[:active_record, {connection: :test_rt_treats}]
RSpec.configure do |config|
config.include Capybara::DSL
config.include FactoryGirl::Syntax::Methods
config.use_transactional_fixtures = false
config.before(:suite) do
cleaner.strategy = :truncation
rt_cleaner.strategy = :truncation
end
config.before(:each) do
cleaner.strategy = :truncation
rt_cleaner.strategy = :truncation
cleaner.start
rt_cleaner.start
end
config.before(:each, :js => true) do
cleaner.strategy = :truncation
rt_cleaner.strategy = :truncation
end
config.after(:each) do
cleaner.clean
rt_cleaner.clean
end
user_factory.rb
FactoryGirl.define do
factory :user do
id 33065
first_name "Andrew"
last_name "Larson"
select_id "al44096"
factory :user_with_facility do
after(:create) do |user|
user.facility_assignments << create(:facility)
end
end
end
factory :facility do
id 1550
ref_select_id 1550
status -1
name "St. Paul's Home & Apartments"
name_internal "St Paul's Home"
dept_id "R51"
...
end
當我在這個測試環境中創建一個新的病人時,它會在我下次使用之前被擦除,儘管我無法在我的代碼中使用同一個current_user。
你是如何管理多個數據庫連接?你是使用寶石還是手動做? – 2015-01-15 16:41:46
不完全確定'管理'是什麼意思。我有清潔劑= DatabaseCleaner [:active_record,{:連接=>:emp_portal_test}] rt_cleaner = DatabaseCleaner [:active_record,{connection::test_rt_treats}]每個建立一個連接到數據庫以執行乾淨的任務。 – omgmakeme 2015-01-15 16:55:54