我在 Rails 3.2 上,我正在使用 rspec (2.11.1)。当我使用“rake spec”运行我的测试套件时,我遇到了失败。当我用“rspec”运行它时,一切都通过了。我已经看到其他关于这个问题的提及,但没有任何明确的解释可以解释正在发生的事情以及最佳实践是什么。
如果我执行“rake spec”或“rake tmp:clear && rake spec”,我的测试将失败。
如果我执行“rspec”或“rspec spec”或“rake db:test:prepare && rspec”,我的测试将通过。
我认为唯一的区别是 rake 执行了“db:test:prepare”,但如果我在运行 rspec 之前手动执行此操作,我的测试就会通过,所以这不可能是全部。
在做了一些阅读之后,我改变了我的 Gemfile。以前我按照“The RSpec Book”(p328)进行了设置,其中描述了将 rspec gem 放入“group :development, :test”块中。在阅读了其他一些 SO 帖子后,我删除了 ":development" 并做了一个捆绑。现在“rake spec”什么都不做。“rspec”仍然像以前一样工作。
很困惑...