我不太确定确切的问题是什么,但是 Avdi Grimm 建议的 database_cleaner 使用示例现在似乎不再适用,而是 database_cleaner README 中显示的示例有效。这两个示例都已将事务性固定装置设置为 false。
以下是来自 Avdi Grimm博客的示例:
RSpec.configure do |config|
# added here for completeness
config.use_transactional_fixtures = false
config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.strategy = :transaction
end
config.before(:each, :js => true) do
DatabaseCleaner.strategy = :truncation
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
end
以下是 database_cleaner README中显示的工作示例:
RSpec.configure do |config|
config.use_transactional_fixtures = false
config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do |example|
DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
end
唯一不同的是截断策略设置。