内存单元测试中的SQLite显示“没有这样的表错误”而不是真正的错误消息

时间:2012-05-31 20:44:15

标签: sqlite unit-testing nhibernate

我有一个基于NHibernate的简单应用程序,我在内存SQLite中对其进行单元测试。每当测试失败时,例如由于重复的实体,单元测试失败,错误“没有这样的表TABLE_NAME”错误,而不是显示原始错误。

如果我切换到真实文件数据库,则会正确评估所有测试(通过或失败)。这怎么可能,我该如何纠正?

1 个答案:

答案 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
}