这是一个rails项目。我想使用rspec来测试不同数据库的多操作。
这个项目名称是app1。测试数据库是test_database1。我想在另一个项目中使用另一个数据库。
该项目名称为app2。测试数据库是test_database2。
我试图将database2 create_table架构添加到app1项目。我使用factory_girl来生成测试数据
factory :product, :class => App2::Product do
。但是,当我运行rspec测试时,它显示了我:
Failure/Error: let(:app2_products) { create(:product) }
ActiveRecord::StatementInvalid:
Mysql2::Error: Table 'app2_test.products' doesn't exist: SHOW FULL FIELDS FROM `products`
# ./spec/my_spec.rb:4:in `block (2 levels) in <top (required)>'
# ./spec/my_spec.rb:12:in `block (3 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# Mysql2::Error:
# Table 'app2_test.products' doesn't exist
# ./spec/my_spec.rb:4:in `block (2 levels) in <top (required)>'
如何在使用spec?
时在app1中创建app2的database2我在config / database.yml中添加了app2的测试数据库:
app2_test:
<<: *app2_default
database: app2_test
我还将app2的创建表架构添加到了app1的db / schema.rb
create_table "products", force: :cascade do |t|
t.string "name"
end
但结果是一样的。