私は、アプリケーションのテストデータベースとしてSQLite3インメモリデータベースを使用して、Railsアプリケーションのテストをスピードアップしようとしています。私はこのblog postの指示に従った。私のRailsテストで私のメモリ内SQLite3データベースの内容が見えないのはなぜですか?
database.yml
で私のデータベースの設定は次のようになりますすることができますように器具が、ロードすることができないので、私のテストのすべてが失敗
def in_memory_database?
Rails.env == "test" and
ActiveRecord::Base.connection.class == ActiveRecord::ConnectionAdapters::SQLiteAdapter ||
ActiveRecord::Base.connection.class == ActiveRecord::ConnectionAdapters::SQLite3Adapter and
Rails.configuration.database_configuration['test']['database'] == ':memory:'
end
if in_memory_database?
ActiveRecord::Schema.verbose = false
puts "creating sqlite in memory database"
load "#{Rails.root}/db/schema.rb"
end
:
test:
adapter: sqlite3
database: ":memory:"
encoding: utf8
verbosity: quiet
推奨されているように私も初期化子を作成参照:
creating sqlite in memory database
Loaded suite test/unit/vendor_appliance_test
Started
E
Finished in 0.070079 seconds.
1) Error:
test_the_truth(VendorApplianceTest):
ActiveRecord::StatementInvalid: Could not find table 'advertisers'
1 tests, 0 assertions, 0 failures, 1 errors
イニシャライザはデータベースを読み込みます(y出力の最初の行から見ることができます)、何らかの理由でスキーマが間違った場所にあるか、テストが始まるまでに拭き取られたために、スキーマがテストに表示されません。
誰でもこれまでに見たことがありますか?