由于我所做的更改,我试图进行一些测试......所以我跑了RAILS_ENV=production bundle exec rspec
这是非常愚蠢的事情,因为 rspec (测试)被配置为截断所有表格,这正是在PRODUCTION上发生的事情!!你可以想象后果
当RAILS_ENV =生产时,是否有办法将rspec配置为永不运行,因此任何人都不会发生这种情况。
可以采用哪些其他建议或良好做法来避免此类错误
更新:我为rspec-rails团队创建了一个ISSUE,他们只是提交了一个修复此问题的更改https://github.com/rspec/rspec-rails/pull/1383/files
答案 0 :(得分:5)
在Gemfile
中,请参阅环境rspec-rails
和rspec
组中与测试相关的任何内容(例如development
或test
)只有,而不是在顶层,例如:
group :development, :test do
gem 'rspec-rails', '~> 3.0'
end
然后在生产机器上没有开发和测试宝石进行捆绑。没有rspec
gem,测试就不会运行。部署时添加--without
开关:
bundle install --without development test
答案 1 :(得分:3)
在spec_helper.rb
之前,在任何RAILS_ENV
作业之前:
raise "Not in test" unless ENV['RAILS_ENV'] == "test"