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

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

NUnit 2.5.2 последовательно броски AppDomainUnloadedException после долго (> 10-е) тесты, включающие PLINQ.

Еще в июле 2008, Stephen Toub сказал:

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

Я попробовал много обходных решений, включая:

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

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

9
задан Garth Kidd 26 August 2009 в 23:28
поделиться