У меня есть два проекта на C #, Model и ModelTest. Модель состоит из объектов ActiveRecord (обертка вокруг Hibernate). В ModelTest я создал простой модульный тест:
[TestClass]
public class UnitTest1
{
[TestInitialize]
public void Init()
{
Model.Init();
Model.CreateSchema();
}
[TestMethod]
public void TestMethod1()
{
}
}
Model.Init () регистрирует все типы сборки Model с помощью ActiveRecord.
Model.CreateSchema () оборачивает ActiveRecordStarter.CreateSchema (), который вызывает CreateSchema () NHibernate.
Этот код работает нормально, если я запускаю модульное тестирование, но не работает, если я "отлаживаю" модульный тест. В режиме отладки в CreateSchema () возникает исключение:
NpgsqlException: 'ERROR: 42P01: table "user" does not exist'
Похоже, что исключение возникает во время вызова SQL "пользовательский каскад удаленной таблицы", который, очевидно, завершается ошибкой, если база данных пуста до запуска теста. Я предполагаю, что падение отправляется всегда перед созданием новой таблицы.
В режиме отладки Npgsql ведет себя по-разному в зависимости от результата запроса на удаление?