在调试UnitTest时,NHibernate / Npgsql在CreateSchema期间抛出异常

时间:2011-04-28 19:30:26

标签: unit-testing nhibernate debugging npgsql

我有两个C#项目,Model和ModelTest。模型由ActiveRecord对象(Hibernate周围的包装器)组成。在ModelTest中,我创建了一个简单的单元测试:

[TestClass]
public class UnitTest1
{
    [TestInitialize]
    public void Init()
    {
        Model.Init();
        Model.CreateSchema();
    }

    [TestMethod]
    public void TestMethod1()
    {
    }
}

Model.Init()使用ActiveRecord注册所有类型的程序集Model。 Model.CreateSchema()包装ActiveRecordStarter.CreateSchema(),它调用NHibernate的CreateSchema()。

如果我运行单元测试,这段代码工作正常,但如果我“调试”单元测试则失败。在调试模式下,CreateSchema()中发生异常:

NpgsqlException: 'ERROR: 42P01: table "user" does not exist'

在SQL调用“drop table user cascade”期间似乎引发了异常,如果在运行测试之前数据库为空,这显然会失败。我假设在创建新表之前总是发送丢弃。

关于丢弃查询的结果,Npgsql在调试模式下的行为是否不同?

1 个答案:

答案 0 :(得分:1)