2016-01-07 4 views
1

В чем мой вопрос/проблема? Я пытаюсь использовать WinDBG для присоединения к нескольким моим модульным тестам, которые находятся в библиотеке классов (проект тестирования модулей), но я не могу заставить WinDbg прерывать управляемые исключения.Тесты для тестирования WinDbg'ing C#

Почему я это делаю? В настоящее время у меня есть тесты, которые используют регулировочные шайбы и натыкаясь на этот вопрос: UnitTestIsolationException: Throws Exception while running Shims test in Release/Debug mode

Однако это происходит только тогда, когда эти тесты выполняются в тандеме (тот же список воспроизведения в тестовом проводнике) с некоторыми другими тестами, которые не используют регулировочные шайбы. При выполнении индивидуально тесты проходят нормально.

Итак, я решил, что я запустил WinDbg (с моим очень ограниченным знанием об этом), прикрепится к тестовому бегуну и сломаю исключения.

Что я пробовал: Поскольку это DLL это, очевидно, будучи загружен некоторыми исполняемым для запуска кода в тестах (тест бегун). В то время как я был, изначально просто выполнял эти тесты в Visual Studio, мне не удалось определить, какой процесс будет подключаться к WinDbg, поэтому вместо этого я начал использовать vstest.console.exe для запуска тестов, а затем подключиться к этому.

Я могу подключить штраф, и WinDbg останавливает выполнение тестового бегуна (yay!).

Теперь я хочу сломать, как только выдается исключение 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'. 
+0

Не могли бы вы предоставить SSCCE (минимальный пример)? –

+0

Что вы используете для расширения отладки? sos/psscor/sosex? – MaLio

+0

@MaLio Я использую sos –

ответ

2

Я предпочитаю psscor, но попробуйте

!StopOnException -derived -create System.Exception 
+1

Спасибо! Как отмечалось в комментариях к этому вопросу, в дополнение к этому, процесс, который я отлаживал, запускал дочерние процессы, и это было/те /, которые необходимо было привязать. –

+0

@PaulZaczkowski: Итак, если '.childdbg 1', вам все еще нужно'! Soe' или 'sxe clr' достаточно? –

Смежные вопросы