В чем мой вопрос/проблема? Я пытаюсь использовать WinDBG для подключения к нескольким моим модульным тестам, которые находятся в библиотеке классов (проект модульного тестирования), но я не могу заставить WinDbg перерыв в управляемых исключениях.
Зачем я это делаю? В настоящее время у меня есть тесты, в которых используются прокладки, и я сталкиваюсь с этой проблемой: UnitTestIsolationException: Выдает исключение при выполнении теста Shims в режиме выпуска/отладки
Однако это ТОЛЬКО происходит, когда эти тесты выполняются в тандеме (тот же список воспроизведения в проводнике тестов) с некоторыми другими тестами, которые не используют прокладки. При индивидуальном запуске тесты проходят нормально.
Итак, я решил запустить 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'.
procdump -e 1 <pid or unique name>
- person Lieven Keersmaekers   schedule 08.01.2016