2010-07-29 5 views
11

При выполнении модульных тестов 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 

ответ

7

ли вы попробовать запустить тесты с использованием ctrl-R ctrl-T вместо ctrl-R T?

EDIT Если это не проблема с комбинацией клавиш, ознакомьтесь с ссылкой this. Вы можете попробовать следующее, как указано здесь:

  1. Отключить «перерыв на пользователей необработанных исключений» для типов исключений вы вы встречая здесь (через Debug -> Исключения)
  2. Отключить «перерыв на пользователь необработанное исключение»для всех исключений (через Debug -> исключения)
  3. Disable "Just My Code"
+0

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

+0

@Jader Dias - см. Мое последнее редактирование для другого возможного решения. – dcp

+0

это также повлияет на неожиданные исключения –

2

@ Предложение dcp похоже, что оно будет работать для MSTEST, но вы можете рассмотреть вопрос о получении TestDriven.Net. Я использую его как тестовый бегун почти исключительно и не имею этой проблемы, используя щелчок правой кнопкой мыши «Run Tests in Debug». Кроме того, я считаю, что это более удобно, чем встроенный тестовый бегун практически во всех обстоятельствах.

1

CTRL + R A работает для меня, не меняя никаких параметров.

Я думаю, что проблема связана с тем, что вы запускаете тестовый проект с помощью кнопки «Начать отладки» (F5) на панели инструментов. Если вы нажмете зеленую кнопку воспроизведения, вы остановитесь в каждом исключении, даже ожидаемом.

Чтобы выполнить все тесты без остановки в каждом исключения, нажмите на: Test -> Run -> Все тесты в решении или использовать сочетание клавиш: CTRL + R, A

С окна результатов испытаний открытой, CTRL + R, D также работает. В окне результатов теста становится понятным разницу между тестами Run Tests и Debug.

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