我有一个基于NHibernate
的简单应用程序,我在内存SQLite
中对其进行单元测试。每当测试失败时,例如由于重复的实体,单元测试失败,错误“没有这样的表TABLE_NAME”错误,而不是显示原始错误。
如果我切换到真实文件数据库,则会正确评估所有测试(通过或失败)。这怎么可能,我该如何纠正?
答案 0 :(得分:2)
这通常是由于未将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
}