Rails アプリケーション内で 2008 SQL Server データベースに接続するために、activerecord-sqlserver-adapter gem を使用しています。私はアプリケーション全体で「 Establish_connection 」を使用して複数のデータベースに接続していることに注意してください。rSpec を使用してアプリケーションをテストしていますが、rSpec が作成する DB からエントリを削除したいと考えています。グーグルで調べたところ、database_cleaner gem が問題の解決策になることがわかったので、Gem を含めて railsappname/spec/spec_helper.rb を次のようにセットアップしました。
require 'database_cleaner'
RSpec.configure do |config|
config.expect_with :rspec do |expectations|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end
config.mock_with :rspec do |mocks|
mocks.verify_partial_doubles = true
end
config.before(:each) do
DatabaseCleaner.strategy = :transaction
FactoryGirl.reload
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
end
また、次の行を false に更新しました
config.use_transactional_fixtures = false
私の rails_helper.rb RSpec.configure ブロックに、その行が最初にあった場所です。
また、戦略を :truncation に変更しようとしましたが、違いはありませんでした。データはまだ DB に挿入されており、テストの完了後も削除されていません。これは activerecord-sqlserver-adapter の制限ですか? これに対する回避策はありますか? この問題は、アプリ内で複数のデータベースに接続していることが原因ですか? 私はしばらくグーグルで検索しましたが、この同じ問題を経験している人を見たことがないので、アドバイスをいただければ幸いです。