【发布时间】:2013-06-19 12:51:07
【问题描述】:
如何标记示例组,以便在每个示例之间不清理数据库,而是在整个组之前和之后清理数据库?并且未标记的规范应该在每个示例之间清理数据库。
我想写:
describe 'my_dirty_group', :dont_clean do
...
end
所以我在我的 spec_helper.rb 中输入了:
config.use_transactional_fixtures = false
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
end
config.before(:suite, dont_clean: true) do
DatabaseCleaner.clean
end
config.after(:suite, dont_clean: true) do
DatabaseCleaner.clean
end
config.before(:each, dont_clean: nil) do
DatabaseCleaner.start
end
config.before(:each, dont_clean: nil) do
DatabaseCleaner.clean
end
问题在于,当未指定元数据标记时,spec_helper 中的 dont_clean: nil(或 false)块不会运行。是否有另一种方法可以在示例之间进行清理之前检查 :dont_clean 是否存在?
【问题讨论】:
标签: ruby-on-rails rspec database-cleaner