Rspec:如何在测试中访问其他数据库

时间:2011-11-01 13:03:26

标签: ruby-on-rails ruby-on-rails-3 rspec ruby-on-rails-3.1 rspec2

在我的 Rspec 测试中,我需要创建一些表到另一个数据库而不是应用程序的测试数据库,该怎么做?

基本上,在我的 Rspec测试中,在before(:all)内,我想从转储文件执行SQL,该文件创建表到另一个数据库

但是当我运行我的Rspec测试时,它会在测试数据库中创建所有表(这是可以理解的,因为它在应用程序的Rspec测试中。)

那么,如何在我的Rspec测试代码中运行sql来创建表另一个数据库

2 个答案:

答案 0 :(得分:0)

所有测试都在Rails测试环境中运行。此处执行的任何SQL都受限于测试环境。

答案 1 :(得分:0)

您可以访问所需的任何数据库:

ActiveRecord::Base.establish_connection(
  :adapter  => 'mysql2',
  :database => 'db_name',
  :username => 'root',
  :password => '',
  :host     => 'localhost')

当然哈希可以改变。我从未尝试过你期望的东西。我认为一旦你的另一个电话完成,你应该重新连接你的测试数据库。