2011-07-06 45 views
2

我正在使用Rspec,webrat,selenium rc进行测试。使用常规数据库的rspec测试不测试数据库

我正在尝试使用硒和rspec进行集成测试。

我只是看着我的开发数据库,​​并了解到我的集成测试使用我的开发数据库而不是我的测试数据库。

我如何配置rails和rspec和selenium来使用我的测试数据库。

我所有的其他测试似乎都使用我的测试数据库。

回答

15

你有一个像

ENV["RAILS_ENV"] ||= 'test' 
在spec_helper.rb

一条线吗? 它强制使用测试数据库,如果你添加/与

ENV["RAILS_ENV"] = 'test' 

取代它,可这是从昨天你的问题的根源 - 重新电子邮件验证?

+0

嘿Chrispanda我改变了我的代码,以上述匹配你的。这并没有改变对开发数据库的写作,但我认为这就是硒如何从我的系统运行它的工作原理。当测试通过Firefox时,它不能写入测试数据库。但我通过清除数据库来解决唯一性问题。这是问题,我以为它写入我的测试分贝,所以我会做耙分贝:测试:准备,而不是耙分贝:重置。 Ughhhh。谢谢。 – chell

+0

您是否知道在每次测试后如何消除我的开发数据库? – chell

+0

不要尝试。让这个工作正常。 –

0

我面临着同样的问题(反对发展,而不是测试环境中运行RSpec的测试),而移植和Rails 2应用到Rails 3.更改行

ENV["Rails.env"] ||= 'test' 

ENV["RAILS_ENV"] ||= 'test' 

在spec_helper .rb解决了我的问题。

我意识到,RAILS_ENV已被弃用,以支持Rails.env,并怀疑在端口上拖动了一些不良内容,迫使我进行此更改。

也有可能提供一些更深入的了解和RAILS_ENV这里Rails.env了良好的讨论:

Correct Ruby on Rails 3 replacement for ENV["RAILS_ENV"] ||= 'production'?