Wie kann ich AppDomainUnloadedException
diagnostizieren und minimieren oder verhindern?
NUnit 2.5.2 wirft konsistent AppDomainUnloadedException
nach langen (> 10s) Tests mit PLINQ.
Zurück im Juli 2008 sagte Stephen Toub:
Ja, der Scheduler in der CTP verarbeitet Thread-Abbrüche nicht sehr gut, was oft dazu führt, dass der Prozess abstürzt, wenn ein aktiver Scheduler in einer Domäne existiert, die heruntergefahren wird (da das Herunterfahren der AppDomain Thread-Abbrüche auf allen Threads mit Stack-Frames in dieser Domäne verursacht). Wir arbeiten daran, dies für eine zukünftige Version zu verbessern.
Ich habe viele Workarounds ausprobiert, einschließlich:
- Ausführen des Tests in einer separaten Methode, um Streuverweise zu beseitigen
- Spezifizieren von
/domain:None
als NUNit-Argument - Entfernen des Elements
legacyUnhandledAppDomainPolicy
ausnunit-console.exe.config
Ich kann NUnit nicht zurückstufen, um die Chancen auf die Rennbedingung zu verringern, da ich PLINQ benötige, um meine parametrischen Tests schneller durchzuführen. Versionen von NUnit ohne das Problem unterstützen keine parametrischen Tests.