我目前正在使用:
RSpec.configure do |config|
config.before(:suite) do
DatabaseCleaner[:active_record].clean_with :truncation
end
end
每次我运行rspec时都会截断所有表。现在,我想知道是否有一种方法可以指示DatabaseCleaner仅在首次访问数据库时才调用清理策略。
结果是,当我运行一个不访问数据库的规范时,就不会被截断(并且节省了数十秒的宝贵时间)
答案 0 :(得分:0)
我从未听说过这种模式,但是您可以检查:transaction
https://github.com/DatabaseCleaner/database_cleaner#what-strategy-is-fastest策略,以便在运行规格时查看数据库。
如果您需要坚持截断,请尝试
DatabaseCleaner.strategy = :truncation, {:pre_count => true}
https://github.com/DatabaseCleaner/database_cleaner#additional-activerecord-options-for-truncation,因为这不会尝试截断空的表。