Остановка IDE при возникновении исключения AssertionException, а не провал теста.(MSTestExtensions виновник?) - PullRequest
0 голосов
/ 12 октября 2010

Я использую утверждения NUnit в проекте MSTest следующим образом ( ПРИМЕЧАНИЕ: Это не должно иметь значения, чтобы увидеть комментарии к ответу Дейва Фолкнера):

using Microsoft.VisualStudio.TestTools.UnitTesting;
using MSTestExtensions;
using Assert = NUnit.Framework.Assert;
using Is = NUnit.Framework.Is;

Это сработало замечательнов моих модульных тестах, но в моих интеграционных тестах у меня возникли некоторые проблемы.Я думаю, что это может быть связано с MSTestExtensions, поскольку мои модульные тесты не использовали его.Кроме того, если я закомментирую оператор MSTestExtensions, используя оператор класса MSTestExtensionsTestFixture для класса и атрибут [TestTransaction], у меня нет этой проблемы.Добавление оператора using обратно не вызывает проблемы.Добавление атрибута [TestTransaction] не вызывает проблемы.Когда я наследую от MSTestExtensionsTestFixture в тестовом классе, проблема возникает сама собой.

В основном проблема заключается в том, что когда я выполняю следующий код в ситуации, когда он потерпит неудачу (такой как список actualPartNumbers, содержащий две части,в то время как ожидаемый список содержит только один), исключение AssertionException не обрабатывается MSTest.

Assert.That(actualPartNumbers, Is.EquivalentTo(expectedPartNumbers));

Таким образом, среда IDE останавливается на сгенерированном исключении, а не проходит тест.Иногда этого не происходит, и тест обычно не проходит.Но в большинстве случаев IDE останавливается на брошенном исключении.Есть идеи?

К вашему сведению: Я использую MSTestExtensions, чтобы я мог выполнять откат базы данных (атрибут [TestTransaction]) после каждого теста.Это похоже на функцию отката MbUnit.Я переопределяю утверждения MSTest с помощью NUnit, потому что мне больше нравится свободный стиль.Наконец, я использую MSTest, потому что у меня проблемы с NUnit.Особенно с Microsoft Moles и конфликтует со сторонними ссылками, которые используют log4net .Я стараюсь изо всех сил настроить юнит-тесты / интеграционные тесты, чтобы они могли работать в любой среде в случае переключенияНо сейчас MSTest кажется наименее хлопотным, и интеграция в IDE очень приятна.

1 Ответ

1 голос
/ 12 октября 2010

Может быть, дело в комбинации клавиш, которую вы используете для запуска тестов: ctrl + R, ctrl + T против ctrl + R, T?

http://stevesmithblog.com/blog/run-mstest-without-breaking-on-exceptions-in-vs2010/

...