Подтвердить что ты не робот

Могу ли я отлаживать при запуске VS Unit Test?

Я хочу unit test пользовательский компонент, который использует пользовательские события. при выполнении этого без использования VS unit test Framework debug.assert успешно, когда вы делаете то же самое с VS unit test Framework, assert не работает, это нелогично, поэтому я хочу отлаживать при выполнении unit test с помощью VS framework. Но, похоже, я не могу, потому что код никогда не останавливается на отладочной точке, которую я установил.

Итак, есть ли способ заставить его остановиться в точке отладки в этом случае?

Обновление: я имею в виду не в самом проекте тестирования, а в целевом проекте при запуске тестового проекта.

4b9b3361

Ответ 1

Ответ П. Кэмпбелла не совсем прав. Если вы начнете отладку проекта (например, сайт служб WCF), невозможно запустить какие-либо модульные тесты, режим отладки или нет. Параметры для этого просто окрашены в Visual Studio 2012.

Это означает, что вы просто не можете отлаживать код вне процесса из unit test. Вы можете только отлаживать код, который был непосредственно вызван процессом unit test.

Это серьезная проблема в VS2012, которую они должны исправить сейчас.

Ответ 2

Да, с проектом Visual Studio Test, вы можете установить точки останова и выполнить свой код.

Обязательно запускайте свои тесты с помощью меню Debug - Tests → Debug → Tests in Current Context. Для любого заданного тестового класса или метода тестирования используйте комбинацию клавиш Ctrl-R Ctrl-T.

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

Ответ 3

В VS2015 выберите:

Test- > Debug- > All Tests

Или вы можете выделить конкретный тест в редакторе и выбрать

Test- > Debug- > Selected Tests