数据库清理器无法在 Rails 应用程序中检测到 ORM
Database Cleaner unable to detect ORM in Rails application
执行$ rspec
时出现如下错误:
No known ORM was detected! Is ActiveRecord, DataMapper, Sequel, MongoMapper, Mongoid, Moped, or CouchPotato, Redis or Ohm loaded? (DatabaseCleaner::NoORMDetected)
这是来自 spec_helper.rb 文件的片段:
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
有问题的 Rails 应用程序使用 ActiveRecord 作为 ORM 并且 documentation for Database Cleaner 声明它检查首先是 ActiveRecord。
应用程序的 Rails 版本是 5.0.0.beta2
。
错误的原因是什么,如何解决?
原因:
错误是由于缺少模型造成的。因为没有模型,应用程序没有指定ORM。因此,DatabaseCleaner 无法选择合适的策略。
解决方案
至少应创建一个模型。这可以通过 rails generate scaffold
或 rails generate model
命令完成。
执行$ rspec
时出现如下错误:
No known ORM was detected! Is ActiveRecord, DataMapper, Sequel, MongoMapper, Mongoid, Moped, or CouchPotato, Redis or Ohm loaded? (DatabaseCleaner::NoORMDetected)
这是来自 spec_helper.rb 文件的片段:
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
有问题的 Rails 应用程序使用 ActiveRecord 作为 ORM 并且 documentation for Database Cleaner 声明它检查首先是 ActiveRecord。
应用程序的 Rails 版本是 5.0.0.beta2
。
错误的原因是什么,如何解决?
原因:
错误是由于缺少模型造成的。因为没有模型,应用程序没有指定ORM。因此,DatabaseCleaner 无法选择合适的策略。
解决方案
至少应创建一个模型。这可以通过 rails generate scaffold
或 rails generate model
命令完成。