Как я могу предотвратить исключение AppDomainUnloadedException после того, как NUnit протестирует код PLINQ? - PullRequest
9 голосов
/ 27 августа 2009

Как я могу диагностировать и минимизировать или предотвратить AppDomainUnloadedException?

NUnit 2.5.2 постоянно выдает AppDomainUnloadedException после длительных (> 10 с) тестов с использованием PLINQ.

В июле 2008 года Стивен Туб сказал :

Да, планировщик в CTP не очень хорошо обрабатывает прерывания потока, что часто приводит к сбой процесса, когда в домене существует живой планировщик завершение работы (так как закрытие AppDomain вызывает прерывание потока на всех потоки с кадрами стека в этом домене) Мы работаем, чтобы укрепить это для будущего выпуска.

Я пробовал много обходных путей, в том числе:

  • Запуск теста отдельным методом для устранения случайных ссылок
  • Указание /domain:None в качестве аргумента NUNit
  • Удаление элемента legacyUnhandledAppDomainPolicy из nunit-console.exe.config

Я не могу повысить NUnit до , чтобы уменьшить шансы на состояние гонки , так как мне нужен PLINQ, чтобы мои параметрические тесты проходили быстрее. Версии NUnit без проблем не поддерживают параметрические тесты.

1 Ответ

1 голос
/ 06 октября 2011

Согласно этой ветке диспетчера задач PLINQ на форумах MSDN , ваша проблема должна быть решена; В последнем выпуске .NET Framework диспетчер задач PLINQ должен был корректно завершать работу при выгрузке домена приложений.

Вы все еще сталкиваетесь с этой проблемой в .NET 4 или 4.5?

...