NUnit против Visual Studio 2010 MSTest? - PullRequest
40 голосов
/ 03 марта 2010

Я понимаю, что есть много старых вопросов, касающихся общего вопроса NUnit v MSTest для версий Visual Studio до 2008 (например, эта ).

У Microsoft есть история исправления ошибок в их третьей версии. Для MSTest это VS2010.

Они сделали это с MSTest ? Вы бы использовали его в новом проекте вместо NUnit?

Мои конкретные проблемы:

  • скорость
  • выполнение тестов в CruiseControl.NET (из командной строки или из задачи MSBuild)
  • отчеты о покрытии кода из CC.NET
  • можете ли вы запускать тесты MSTest в режиме отладки

(Мы используем ReSharper, поэтому тестовые тесты для нас не проблема. Мы использовали NUnit в течение последних нескольких лет. У нас нет TFS.)

Ответы [ 8 ]

31 голосов
/ 03 марта 2010
  • Скорость элемента списка такая же, но MsTest может быть немного медленнее, потому что каждый раз создает папку для тестового запуска
  • MSBuid и CC.Net - большая боль. Вы не можете запустить MSTest на компьютере без VS на нем (не уверен, что в 2010 году, но с 2008 это так)
  • не уверен, извините
  • да, вы можете из визуальной студии

Моя рекомендация следующая: если NUnit вас устраивает - используйте его, забудьте о MSTest

14 голосов
/ 11 марта 2010

Исправить старую информацию в потоке;

  1. В 2010 году можно запустить 64-битные тесты
  2. Начиная с VS2008, нет необходимости в том, чтобы MSTEST создавал каталоги и включал двоичные файлы, просто отключил развертывание, в 2010 году это по умолчанию, но вы должны установить его в 2008
  3. 2010 MSTEST работает быстрее, но, поскольку он представляет собой обобщенную среду тестирования, которая также выполняет тесты загрузки / веб / пользовательского интерфейса, в конструкции есть компромиссы, которые приведут к его замедлению. Джейми Кэнсдейл, похоже, сумел добиться увеличения производительности с помощью последних выпусков поддержки TestDriven.net для MSTEST
5 голосов
/ 12 мая 2010

Я в основном использовал NUnit, немного xUnit и немного MSTest. Они кажутся функциональными эквивалентами, но мне не нравится тестер MSTest. Он работает в визуальной студии, поэтому он либо заполняет экран, либо находится на другом мониторе, мешая мне каждый раз переходить на визуальную студию. (Я запускаю NUnit на другом мониторе, но он не охватывает все на этом мониторе каждый раз, когда я фокусируюсь на visual studio). Требуется слишком много кликов, чтобы узнать, какой тест не пройден и почему.

NUnit может работать в фоновом режиме до тех пор, пока тест не будет завершен неудачей, после чего он покажет вам информацию о тесте на разрыв. Это кажется идеальным для того, чтобы красный / зеленый / рефактор работал гладко.

2 голосов
/ 03 марта 2010

Неа. Те же проблемы, связанные с доменами приложений и разрешением сборок, все еще существуют. Я бы избегал, если вы не хотите нового качества для другого функционального тестирования или интеграции с Team System.

0 голосов
/ 18 января 2013

MSUnit запускает ваши тесты в условиях, отличных от реальной среды выполнения. В частности, развернутые файлы отличаются от тех, которые были развернуты при запуске вашего реального проекта. Тем не менее, существует атрибут [DeploymentItem], который указывает, какие файлы должны быть развернуты MSUnit. Так что если ваше приложение зависит от каких-либо внешних файлы, такие как

  • файлы базы данных
  • файл конфигурации базы данных
  • файл конфигурации приложения
  • ...

тогда MSUnit - неправильный выбор, потому что тесты MSUnit никогда не показывают, как ваша файловая система будет выглядеть в среде выполнения. Параметры файла проекта Visual Studio для развертывания файлов (всегда копировать, содержимое и т. Д.) Игнорируются программой MSUnit. Таким образом, эти настройки не могут быть проверены.

0 голосов
/ 25 сентября 2010

Одно из основных различий между ними состоит в том, что MSTest создает копию текущих библиотек DLL каждый раз, когда запускает тест. Если вы выполняете TDD и часто запускаете тесты, это может занять много места на жестком диске.

Если вы используете MSTest, вы можете изменить этот параметр в Инструменты> Параметры> Инструменты тестирования> Выполнение теста. Для параметра «Ограничить количество старых результатов теста» в Visual Studio 2010 по умолчанию установлено значение 25. Обычно я изменяю его на 1.

0 голосов
/ 08 марта 2010

Если вы думаете, что когда-нибудь будете выполнять свои тесты в 64-битном режиме, используйте NUnit. MsTest только x86.

0 голосов
/ 03 марта 2010

Я не знаю много о CruseControl.net, но вы можете отлаживать тесты. В настоящее время мы также не используем TFS, и MSTest работает для нас.

...