40

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

Microsoft имеет историю получения вещей в своей третьей версии. Для MSTest это VS2010.

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

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

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

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

+0

См. [Что такое предпочтительные варианты-сегодня-для-unit-testing-in-vs-2010] (http://stackoverflow.com/questions/6339234/what-are-the-preferred- options-today-for-unit-testing-in-visual-studio-2010) – nawfal

ответ

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

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

+7

Согласитесь с последним утверждением. –

+1

@Preet. Согласен. Также изменения MSTest привязаны к выпускам Visual Studio – RichardOD

+0

+1 для последнего оператора. Я был в проекте, и мы начали модульное тестирование с MSTest (2008). Мы так разозлились, мы перешли на NUnit. Я использую VS 2010, и нет никакого улучшения по сравнению с VS 2008. – Mas

0

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

2

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

0

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

+0

Обходное решение описано здесь, http://rupertrawnsley.blogspot.com/2011/04/mstest-and-64bit.html, но, похоже, возможно, бит клочья? – AnneTheAgile

14

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

  1. Это можно запускать 64-битные тесты в 2010
  2. С VS2008 вперед не neccesary иметь MSTest создавать каталоги ANC опировать двоичные файлы в, просто отключить развертывание, в 2010 году то будет по умолчанию, но вы должны установите его в 2008 году
  3. 2010 MSTEST работает быстрее, но в качестве обобщенной тестовой среды, которая также запускает тесты нагрузки/веб-интерфейса/UI, в дизайне есть компромиссы, которые приведут к его замедлению. Джейми Cansdale, кажется, удался получить перфорацию увеличивается с выпусками самого последними поддержки TestDriven.NET для MSTest
5

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

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

0

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

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

0

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

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

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