直接入题:
因为项目中的方法会涉及到很多表,且表中的数据会很多时才会将方法的分支覆盖全,如果采用准备数据的方式,工作量大,且数据很可能就是错的,所以决定采用测试时不删除数据库(因为项目基本以读取为主)的方式解决,我知道这种方法应该是很差的,但是暂时不知道如何解决这个问题,临时采用此方法了。
ruby:1.9.2, rails:3.0.3, rspec:2.11.0, rspec-rails:2.11.0
解决方法如下:
1.打开文件~/.rvm/gems/ruby-1.9.2-p290/gems/rspec-rails-2.11.0/lib/rspec/rails/tasks/rspec.rake,我是使用rvm管理ruby。
2.将9行的“db:test:prepare”
Rails.configuration.active_record[:schema_format] == :sql ? "db:test:clone_structure" : "db:test:prepare"
# 将上行修改为下行
Rails.configuration.active_record[:schema_format] == :sql ? "db:test:clone_structure" : "db:migrate"
再次声明:这不是一个好的处理方法,希望大家能提供帮助如何解决此问题。谢谢。