运行初始测试后,测试数据库未刷新

时间:2011-01-23 17:33:21

标签: ruby-on-rails ruby-on-rails-3 sqlite rspec2

我要经过Railstutorial.org并遇到这个问题:

测试数据库在运行测试后似乎没有清空。

在6.10节中,我在user_spec.rb文件中创建了下面的行,然后第一次通过,然后每次都失败。

it "should create a new instance given valid attributes" do
     User.create!(@attr)
end

当我查看test.sqlite3数据库时,它会在数据库中显示1个用户。如果我删除用户,测试通过一次,则再次失败,说它无法创建用户,因为电子邮件不是唯一的。我查看数据库,然后再次记录。

似乎上面的代码创建了它,但它永远不会被破坏。

这是我的GemFile

source 'http://rubygems.org' 
gem 'rails', '3.0.3'
gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'
gem 'gravatar_image_tag', '0.1.0'

group :development do 
    gem 'rspec-rails', '2.3.0'
    gem 'annotate-models', '1.0.4'
end

group :test do 
    gem 'rspec', '2.3.0' 
    gem 'webrat', '0.7.1'
    gem 'spork', '0.8.4'
end

2 个答案:

答案 0 :(得分:2)

签入./spec/spec_helper.rb并确保以下行:

config.use_transactional_fixtures = true

答案 1 :(得分:0)

查看database_cleaner gem,看看是否能解决您的问题。