【发布时间】:2017-09-05 22:02:54
【问题描述】:
我有一个运行 rspec 以进行测试的 rails 项目,我想在每次启动 RSPEC 时从转储文件中恢复测试数据库。我尝试在 rspec 块下的rails_helper 文件中编写一些配置,但由于正在使用数据库,它无法使用系统命令恢复数据库。
如何在加载 rspec 时从转储文件中恢复数据库?
使用 Rails 5 和 psql
【问题讨论】:
标签: ruby-on-rails postgresql rspec
我有一个运行 rspec 以进行测试的 rails 项目,我想在每次启动 RSPEC 时从转储文件中恢复测试数据库。我尝试在 rspec 块下的rails_helper 文件中编写一些配置,但由于正在使用数据库,它无法使用系统命令恢复数据库。
如何在加载 rspec 时从转储文件中恢复数据库?
使用 Rails 5 和 psql
【问题讨论】:
标签: ruby-on-rails postgresql rspec
我能够通过在 RSpec 配置块下的 rails_helper 中执行以下操作来解决此问题:
ActiveRecord::Base.connection.disconnect!
system('bin/rails db:environment:set RAILS_ENV=test')
system('rake db:drop')
system('rake db:create')
system('pg_restore --no-acl --no-owner -d name_of_databse test.dump')
ActiveRecord::Base::establish_connection
【讨论】: