3

NHibernate私はメモリ内で単体テストを行っている単純なベースのアプリケーションを持っていますSQLite。たとえば、エンティティの重複が原因でテストが失敗するたびに、元のエラーを表示する代わりに、「そのようなテーブル TABLE_NAME はありません」というエラーで単体テストが失敗します。

実際のファイル データベースに切り替えると、すべてのテスト (合格または不合格) が正しく評価されます。これはどのように可能であり、どうすれば修正できますか?

4

1 に答える 1

3

これは多くの場合、インメモリ データベースで 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
}
于 2012-06-08T09:03:54.090 に答える