を診断して最小化または防止するにはどうすればよいAppDomainUnloadedException
ですか?
NUnit 2.5.2 はAppDomainUnloadedException
、PLINQ を含む長い (10 秒を超える) テストの後、一貫してスローします。
2008 年 7 月にさかのぼると、Stephen Toub は次のように述べています。
はい、CTP のスケジューラはスレッドの中止を適切に処理しません。これにより、シャットダウン中のドメインにライブ スケジューラが存在する場合にプロセスがクラッシュすることがよくあります (AppDomain のシャットダウンにより、そのドメイン内のスタック フレームを持つすべてのスレッドでスレッドが中止されるため)。 )。将来のリリースに向けてこれを強化するために取り組んでいます。
次のような多くの回避策を試しました。
- 別のメソッドでテストを実行して、浮遊参照を排除する
/domain:None
NUUnit 引数として指定するlegacyUnhandledAppDomainPolicy
要素を削除するnunit-console.exe.config
パラメトリック テストを高速化するには PLINQ が必要なため、競合状態の可能性を減らすためにNUnit をバックグレードすることはできません。問題のない NUnit のバージョンは、パラメトリック テストをサポートしていません。