У меня есть старый MonoRail/ActiveRecord. Я тоже занимался некоторыми работами.После обновления до замка Trunk и NHibernate 2.1.0.4000 Мой тест по интеграции завершился. TestDriven.Net
Недавно я решил обновить приложение на замок Магистральные & NHibernate 2.1.0.4000 GA и я теперь найти несколько проблем с ходовых испытаний:
Во-первых - При использовании TestDriven.NET запустить интеграционные тесты которые работают против базы данных, это вообще сбой TestDriven.Net или все тесты завершают выполнение, а затем проверяется TestDriven.Net. Этого не произошло до обновления.
Когда TestDriven.NET падает, вот что будет записано в журнал событий:
ведро Fault 1467169527, тип 1 Название события: APPCRASH Response: Нет в наличии Cab Id: 0
сигнатура проблемы: P1: P2 ProcessInvocation86.exe : 2.22.2468.0 P3: 4a26845c P4: KERNELBASE.dll P5: 6.1.7600.16385 P6: 4a5bdbdf P7: e053534f P8: 0000b727 P9: P10:
Вторая вещь - Исключения в настоящее время регистрируется, когда прокси-классы будучи финализац() 'd, как показано ниже - это, кажется, когда-то это, зарегистрирован пару раз, то есть при сбое TestDriven.Net.
Вот трассировки стека для исключения:
NHibernate.LazyInitializationException:
Initializing[MyApp.Core.Models.TestExecutionPackage#15d9eb96-faf0-4b4b-9c5c-9cd400065430]-Could not initialize proxy - no Session.
at NHibernate.Proxy.AbstractLazyInitializer.Initialize()
at NHibernate.Proxy.AbstractLazyInitializer.GetImplementation()
at NHibernate.ByteCode.Castle.LazyInitializer.Intercept(IInvocation invocation)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.TestExecutionPackageProxy.Finalize()
То же поведение будет также врезаться MsBuild на нашем CI Server.
Что действительно странно, что в исключениях теории придачу Finalize() следует проглатывать согласно документации MSDN:
http://msdn.microsoft.com/en-us/library/system.object.finalize(VS.71).aspx
Если Доработка или переопределение Доработка бросает исключение, среда выполнения игнорирует исключение, завершает этот метод Finalize и продолжает процесс завершения.
Мысли кто-нибудь?
Я не уверен, что DynamicProxy должен когда-либо переопределять метод 'Finalize' ... в 1-м месте –