NHibernate
私はメモリ内で単体テストを行っている単純なベースのアプリケーションを持っていますSQLite
。たとえば、エンティティの重複が原因でテストが失敗するたびに、元のエラーを表示する代わりに、「そのようなテーブル TABLE_NAME はありません」というエラーで単体テストが失敗します。
実際のファイル データベースに切り替えると、すべてのテスト (合格または不合格) が正しく評価されます。これはどのように可能であり、どうすれば修正できますか?
NHibernate
私はメモリ内で単体テストを行っている単純なベースのアプリケーションを持っていますSQLite
。たとえば、エンティティの重複が原因でテストが失敗するたびに、元のエラーを表示する代わりに、「そのようなテーブル TABLE_NAME はありません」というエラーで単体テストが失敗します。
実際のファイル データベースに切り替えると、すべてのテスト (合格または不合格) が正しく評価されます。これはどのように可能であり、どうすれば修正できますか?
これは多くの場合、インメモリ データベースで SchemaExport を使用していないことが原因です。Sqlite インメモリ データベースは接続に依存しているため、各接続には独自のデータベースがあります。
new SchemaExport(config).Create(false, true); // creates database, fill it and throws away
それ以外の
using (var session = sessionfactory.OpenSession())
{
new SchemaExport(config).Execute(false, true, false, session.Connection, null);
// use session in test
}