我的rails helper
中有以下行。
config.use_transactional_fixtures = true
但我想将其修改为
config.use_transactional_fixtures = false
但我不想为spec
文件夹中的每个测试修改它。我只想将它应用于spec/requests
文件夹中的所有测试
我该怎么办?
答案 0 :(得分:1)
在做了一些研究之后,看起来你需要使用DatabaseCleaner gem MSDN documention。在rails帮助器中,您可以添加:
require 'database_cleaner'
RSpec.configure do |config|
config.use_transactional_fixtures = false
config.before type: :request do
DatabaseCleaner.strategy = :truncation
end
config.after type: :request do
DatabaseCleaner.strategy = :transaction
end
config.before :each do
DatabaseCleaner.start
end
config.after do
DatabaseCleaner.clean
end
end
这会设置你,以便请求规范将使用截断策略(从数据库中删除所有数据)和除请求规范之外的所有内容使用事务(从运行场景回滚所有更改)。