Почему Visual Studio не повреждается на исключениях при отладке модульных тестов?

Я предполагаю, что это ответ на мой ответ на ваш предыдущий вопрос. В программировании магическое число представляет собой встроенную численную константу, которая появляется без объяснения причин. Если он отображается в двух разных местах, это может привести к обстоятельствам, когда один экземпляр изменен, а не другой. По этим причинам важно изолировать и определить числовые константы за пределами тех мест, где они используются.

25
задан Jeff Stewart 28 September 2009 в 17:23
поделиться

6 ответов

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

Вместо этого вам нужно прервать возникновение исключений. Если вы объедините это с включением «Только мой код» (по умолчанию), вы должны получить ожидаемое поведение. Visual Studio прекратит работу только при возникновении исключений, созданных вашим кодом.

31
ответ дан 28 November 2019 в 07:27
поделиться

Для меня я использую VS 2010 и 2015, перейдите по ссылке: Инструменты, Параметры, Отладка, Общие: необходимо убедиться, что «Включить только мой код» и «Включить помощника по исключениям» проверены.

9
ответ дан Haryono 15 October 2019 в 16:39
поделиться

По умолчанию, даже если вы выполняете отладочную сборку, MSTest не дает вам отладки (с точками останова и т. Д.), Если вы на самом деле не скажете ему явно «Отладочные юнит-тесты».

Он должен разбиваться на необработанные исключения в модульном тестировании, если вы находитесь в конфигурации отладки, и вы запускаете модульное тестирование, используя «Отладку», то есть: используя Ctrl+R, Ctrl+A вместо Ctrl+R, A для запустить все тесты. В окне тестирования есть меню «Выполнить» и «Отладка» с параметрами.

0
ответ дан Reed Copsey 15 October 2019 в 16:39
поделиться

Установите Testdriven.NET и используйте «Test With -> Debugger».

-1
ответ дан mxmissile 15 October 2019 в 16:39
поделиться

Это вызвано тем, что тесты выполняются с использованием MSTest (Visual Studio используется просто как оболочка). MSTest будет маскировать эти возникающие исключения, и они никогда не всплывают в Visual Studio. Если вы запускаете тесты в режиме отладки, он должен работать.

Если вы щелкнете правой кнопкой мыши по тесту (ам) в Test View и выберете их для отладки, он должен выполнить код через IDE, а исключения должны прерваться соответствующим образом.

альтернативный текст http://i36.tinypic.com/fwowaf.jpg

-1
ответ дан Glorfindel 15 October 2019 в 16:39
поделиться

Среда модульного тестирования обрабатывает исключение, поэтому Visual Studio считает, что исключение обработано.

2
ответ дан 28 November 2019 в 07:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: