1

私の質問/問題は何ですか? WinDBG を使用して、クラス ライブラリ (単体テスト プロジェクト) にあるいくつかの単体テストにアタッチしようとしていますが、マネージド例外で WinDBG を中断させることができません。

なぜ私はこれをしているのですか? 現在、シムを使用するテストがあり、この問題にぶつかっています: UnitTestIsolationException: リリース/デバッグ モードでシム テストを実行しているときに例外がスローされます

ただし、これは、これらのテストが shim を使用していない他のテストと並行して (テスト エクスプローラーで同じプレイリストで) 実行された場合にのみ発生します。個別に実行すると、テストは問題なくパスします。

そこで、WinDbg を起動し (それについては非常に限られた知識で)、テスト ランナーにアタッチし、そこで例外を中断することにしました。

私が試したこと: これは DLL であるため、テスト (テスト ランナー) 内でコードを実行するために実行可能ファイルによってロードされていることは明らかです。私もともとこれらのテストを Visual Studio で実行していましたが、WinDbg をアタッチするプロセスを決定するのに苦労したため、代わりに vstest.console.exe を使用してテストの実行を開始し、それにアタッチしました。

問題なくアタッチでき、WinDbg はテスト ランナーの実行を停止します (イェイ!)。

ここで、CLR 例外がスローされたらすぐに中断したいと考えています (UnitTestIsolationException を意味します)。グーグルで調べたところ、それを行うための windbg コマンドが見つかりました。 sxe clr

次に と入力gすると、プログラムは再びテストを実行し始めます。

私が見ている動作: WinDbg は UnitTestIsolationException で中断することはありません - すべてのテストが完了するまで実行され、テスト結果がコンソールに出力され、プログラムが終了します。

Passed   [SomePassingTestName]
Passed   [SomePassingTestName]
Failed   [TheFailedTestMethodName]
Error Message:
   Test method [TheFaileTestMethodName] threw exception:
   Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationExceptio
n: Unexpected error returned by SetDetourProvider in profiler library 'C:\Progra
m Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsof
t\IntelliTrace\14.0.0\Microsoft.IntelliTrace.Profiler.14.0.0.dll'.
4

1 に答える 1

2

私はpsscorを好みますが、試してみてください

!StopOnException -derived -create System.Exception
于 2016-01-11T10:46:03.037 に答える