ExpectedException на TestMethod Visual Studio 2010

Сегодня я обновил свое решение со всеми базовыми проектами от VS2008 до VS2010. Все подходило за исключением моих модульных тестов.

В первую очередь, только веб-проекты имели как целевая платформа.NET 4. Все другие проекты все еще имели.NET 3.5. Я изменил их всех на.NET 4.

Теперь, когда я отлаживаю свои модульные тесты, это повреждается на каждом исключении. В 2008 это просто не передало бы и сказало бы мне, что исключение произошло. Даже когда мне определили атрибут ExpectedException, он прекращает отлаживать на каждом исключении.

И пример одного из моих тестов:

[TestMethod]
[ExpectedException(typeof(EntityDoesNotExistException))]
public void ConstructorTest()
{
    AddressType type = new AddressType(int.MaxValue);
}

EntityDoesNotExistException является пользовательским исключением и наследовал Исключение.

Редактирование я посмотрел на настройки Exceptions (ctrl+alt+e) в 2008 и 2010. В обеих версиях настройки являются тем же. Однако в 2008 отладка не повреждается, когда я сделал, чтобы ExpectedException приписал. В 2010 это действительно повреждается.

20
задан Joop 13 April 2010 в 11:42
поделиться

4 ответа

Нажмите Ctrl + Alt + E и проверьте настройку прерывания при исключении для исключений CLR. Если для него установлено значение true, то будет происходить описанное вами поведение.

2
ответ дан 30 November 2019 в 00:51
поделиться

У меня была та же проблема, но, наконец, мне удалось заставить ее работать. Не совсем уверен, как, но вот список вещей, которые я делал между тем, когда он не работал, и когда он снова начал работать.

  • Конвертировал тестируемый проект в .NET 4
  • Отключил CodeCoverage
  • Снова включил CodeCoverage
  • Выполнил RebuildAll в тестовом проекте

Не уверен, какой бит исправил это. В любом случае, надеюсь, это поможет!

0
ответ дан 30 November 2019 в 00:51
поделиться

Убедитесь, что ваша ссылка на Microsoft.VisualStudio.QualityTools.UnitTestingFramework имеет версию 10.0.0.0.

Если это версия 9.0.0.0, эта проблема возникнет в Visual Studio 2010.

Надеюсь, это поможет. Если у людей все еще есть эта проблема.

1
ответ дан 30 November 2019 в 00:51
поделиться

Джерри указал мне правильное направление:

  • Нажмите Ctrl-Alt-E
  • Откройте узел исключений среды CLR
  • Нажмите «Добавить»
  • Введите Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException
  • Убедитесь, что оба флажка сняты.

Это избавит от прерывания при неудачных утверждениях, но тест все равно прервется, если вы установите ExpectedException.

Я был тем, кто установил для этого бонус 100, так что некоторые положительные отзывы будут оценены; -)

12
ответ дан 30 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: