VisualStudioでマネージC++コードを単体テストする場合、よく知られている問題があります。マネージにコールバックするアンマネージコードは、アプリドメインを越えられず、単体テストがクラッシュします 。 Forums / is / vststest / thread / fc7bc074-ff05-407b-b646-d9e5532c6998 および詳細はこちら:http: //lambert.geek.nz/2007/05/29/unmanaged-appdomain-callback
/ noisolationフラグを使用することは1つの解決策ですが、Visual Studioの外部でテストを実行する場合にのみ機能します。つまり、VisualStudioでテストをデバッグすることはできません。
私にとって、これは大きなことです。少なくとも2006年以来、Microsoftがこの問題に対処したくないことを理解するのに苦労しています。VisualStudio11ベータ版でさえ、ここで新しいものが何も提供されていないことを発見したことは大きな失望でした。
そこで、NUnitを使用して、[すべてのテストに単一のAppDomainを使用する]を選択してテストの実行を開始しました。残念ながら、NUnitは次のメッセージを表示します:「このテストの実行中に未処理のSystem.ArgumentExceptionがスローされました:AppDomain間でGCHandleを渡すことができません。」その後、クラッシュします。
GCHandle AppDomainの問題をデバッグし、回避できるようになることを望んでいました。単一のAppDomainオプションの意味を誤解していますか?NUnit 2.6は別のAppDomainでテストを実行しますが、それを変更するオプションはまだありませんか?