Как предотвратить ожидаемые исключения от прерывания отладочного теста? - PullRequest
11 голосов
/ 29 июля 2010

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

Ответы [ 3 ]

8 голосов
/ 29 июля 2010

Вы пытались запустить тесты, используя ctrl-R ctrl-T вместо ctrl-R T?

РЕДАКТИРОВАТЬ Если это не проблема с сочетанием клавиш, проверьте эту ссылку.Вы можете попробовать следующее, как отмечено здесь:

  1. Отключить «разрыв пользовательских необработанных исключений» для типов исключений, с которыми вы здесь сталкиваетесь (через Debug -> Exceptions)
  2. Отключить «разбивать пользовательские необработанные исключения» для всех исключений (через «Отладка -> Исключения»)
  3. Отключить «Просто мой код»
4 голосов
/ 21 июня 2012

CTRL + RA работает для меня без изменения каких-либо параметров.

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

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

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

2 голосов
/ 29 июля 2010
Предложение

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

...