2010-06-29 5 views
2

Будем надеяться, что хороший п просто один для васVS2010 модульные тесты - брошенные исключения являются пустыми

Запуск некоторые тесты в рамках тестирования VS2010 в. Когда исключение выбрасывается где-то внутри, на экране результатов ничего не отображается.

Простейший пример:

[TestMethod] 
public void DoTest() 
{ 
    int y = 10 - 10; 
    int x = 10/y; 
} 

Метод испытание MyProj.DoTest бросило исключение: ...

Вы не можете видеть его здесь, но до того, как '...' есть какое-то специального скрытого символа (отображается как квадрат). Как просмотреть детали и, в идеале, stacktrace.

+0

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

+0

Тест завершается с ошибкой и завершается, как только возникает исключение. Таким образом, нет никакого способа увидеть это, не обернув его в try/catch и исследуя исключенное пойманное исключение. Хорошо в этом случае, но не тогда, когда я не знаю, откуда исходит исключение. –

ответ

0

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

+0

Вот что я делаю сейчас. Нет другого пути? кажется довольно плохой на стороне MS. NUnit всегда выдавал вам полную трассировку стека при неудачном тесте. И теперь, даже когда я нахожу линию, я не могу понять, почему она терпит неудачу, мне нужно отредактировать код, чтобы поставить try/catch вокруг строки с ошибкой, чтобы иметь возможность увидеть что-то из того, что приводит к ее провалу , –

2

На самом деле вам не нужно добавлять блоки try/catch. Если вы просто нажмите Debug вместо Run:

alt text http://i50.tinypic.com/212a0ko.jpg

она автоматически сломает и показать вам тип исключения: alt text http://i46.tinypic.com/16m3puh.jpg

Вы также должны убедиться, что для перехода к Debug -> Исключения (Ctrl + Alt + E) и перейдите к Исключения исключений Common Language Exceptions-> System-> ystem.DivideByZero - это либо брошено, либо пользовательское. Если ни один из них не установлен, ничто не будет отображаться при отладке, и вы получите то, что вы описали. Это, конечно, верно для всех исключений.

-1

Вы просто дважды щелкните на неудачной проверки в окне Test Results или щелкните правой кнопкой мыши> Просмотр результатов тестирования Подробнее

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