Подтвердить что ты не робот

NUnit vs Visual Studio 2010 MSTest?

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

Чтобы исправить некоторую старую информацию в потоке,

  • В 2010 году можно запустить 64-разрядные тесты
  • От VS2008 вперёд не обязательно, чтобы MSTEST создавал каталоги и поддерживал двоичные файлы, просто отключив развертывание, в 2010 году по умолчанию, но вы должны установить его в 2008 году.
  • 2010 MSTEST быстрее, но в качестве обобщенной тестовой среды, которая также запускает тесты нагрузки/веб-интерфейса/UI, в дизайне есть компромиссы, которые приведут к тому, что он будет медленнее. Кажется, что Джейми Кансдейлу удалось получить первенство с последними релизами поддержки TestDriven.net для MSTEST

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

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

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