【问题标题】:Rspec: how to access other database in a testRspec:如何在测试中访问其他数据库
【发布时间】:2011-11-01 13:03:26
【问题描述】:
在我的Rspec测试中,我需要创建一些表到另一个数据库而不是应用程序的测试数据库,该怎么做?
基本上,在我的 Rspec 测试中,在before(:all) 内,我想从转储文件执行 SQL,该转储文件创建表到 另一个数据库。
但是当我运行我的 Rspec 测试时,它会在测试数据库中创建所有表(这是可以理解的,因为它在应用程序的 Rspec 测试中。)
那么,如何在我的 Rspec 测试代码中运行 sql 来为另一个数据库创建表?
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
rspec
ruby-on-rails-3.1
rspec2
【解决方案1】:
所有测试都在 Rails 测试环境中运行。此处执行的任何 SQL 都受限于测试环境。
【解决方案2】:
你可以访问任何你想要的数据库:
ActiveRecord::Base.establish_connection(
:adapter => 'mysql2',
:database => 'db_name',
:username => 'root',
:password => '',
:host => 'localhost')
当然可以更改哈希值。我从来没有尝试过你所期望的。我认为您应该在完成其他呼叫后重新连接到您的测试数据库。