Wie kann ich AppDomainUnloadedException
diagnostizieren und minimieren oder verhindern?Wie kann ich AppDomainUnloadedException verhindern, nachdem NUnit den PLINQ-Code getestet hat?
NUnit 2.5.2 löst nach langen (> 10s) Tests mit PLINQ konsistent AppDomainUnloadedException
aus.
Bereits im Juli 2008 Stephen Toub said:
Ja, der Planer in dem CTP nicht Thread Griff bricht sehr gut, die der Prozess häufig zum Absturz bringt, wenn ein Live-Scheduler in einer Domäne vorhanden sind shutdown (seit AppDomain Herunterfahren verursacht Threadabbrüche auf allen Threads mit Stack-Frames in dieser Domäne). Wir arbeiten daran, das für eine zukünftige Version zu härten.
Ich habe versucht, viele Abhilfen, einschließlich:
- den Test in einem separaten Verfahren Laufstreu Referenzen von
nunit-console.exe.config
- Angeben
/domain:None
als nUnit Argument - Entfernen des
legacyUnhandledAppDomainPolicy
Element zu beseitigen
Ich kann NUnit nicht aufzurückgraden, da ich PLINQ brauche, um meine parametrischen Tests schneller zu machen. Versionen von NUnit ohne das Problem unterstützen keine parametrischen Tests.
siehe auch http://stackoverflow.com/questions/561402/cassini-webserver-webdev-nunit-and-appdomainunloadedexception für ein ähnliches Problem. Dies ist wahrscheinlich https://bugs.launchpad.net/nunitv2/+bug/423611 –
Oft wird ein solches Problem durch falsches Entsorgen von Objekten verursacht, die während eines Test-Starts instanziiert wurden, um zu sehen, ob Sie alle Ressourcen ordnungsgemäß entsorgen – sll