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.)
Ответы
Ответ 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. Поэтому эти настройки не могут быть протестированы.