Как предотвратить ожидаемые исключения от взлома теста отладки?
При запуске модульных тестов MSTEST в режиме отладки выполнение останавливается в каждом ожидаемом исключении, которое выбрано. Мой тест выглядит следующим образом
[TestMethod()]
[ExpectedException(typeof(ArgumentNullException))]
public void ShouldThrowExceptionWhenPassingNull()
{
object data = null;
target.CheckNull(data);
}
целевой метод выглядит следующим образом:
public void CheckNull(object data)
{
if (ReferenceEquals(null, data))
{
throw new ArgumentNullException("data");
}
} // test run breaks here: ArgumentNullException was unhandled by user code
Ответы
Ответ 1
Вы пытались запустить тесты, используя ctrl-R ctrl-T
вместо ctrl-R T
?
ИЗМЕНИТЬ
Если это не проблема с ярлыком на клавиатуре, проверьте эту ссылку. Вы можете попробовать следующее, как указано там:
- Отключить "прерывание пользовательских необработанных исключений" для типов исключений вы сталкиваетесь здесь (через Отладка → Исключения)
- Отключить "прерывание пользовательских необработанных исключений" для всех исключений (через Отладка → Исключения)
- Отключить "Только мой код"
Ответ 2
Предложение @dcp похоже, что оно будет работать для MSTEST, но вы можете захотеть получить TestDriven.Net. Я использую его как тестовый бегун почти исключительно и не имею этой проблемы, используя щелчок правой кнопкой мыши "Run Tests in Debug". Кроме того, я считаю, что это более удобно, чем встроенный тестовый бегун практически во всех обстоятельствах.
Ответ 3
CTRL + R A работает для меня без изменения какой-либо опции.
Я думаю, что проблема заключается в том, что вы запускаете тестовый проект из кнопки "Начать отладки" (F5) на панели инструментов. Если вы нажмете зеленую кнопку воспроизведения, вы остановитесь в каждом исключении, даже ожидаемом.
Чтобы выполнить все тесты без остановки в каждом исключении, нажмите:
Test → Run → Все тесты в решении
или используйте ярлык: CTRL + R, A
При открытии окна результатов теста CTRL + R, D также работает. В окне результатов теста становится ясно различие между прогонами тестов и отладочными тестами.