Существуют ли реальные различия между NUnit и Microsoft Unit Testing Framework (VS 2008)?

С каркасом, который имеет Visual Studio 2008, я пропустил что-то великое, НЕ используя внешний инструмент, такой как NUnit? Из того, что я могу сказать, похоже, что использование NUnit было бы более сложным с ручным созданием тестовых классов и методов по сравнению с правой кнопкой мыши на native в среде IDE. Как я уже сказал, отсутствуют ли функции, которые NUnit предоставляет, чтобы VS не содержал? Наличие простого графического интерфейса для моих пользователей QA для доступа - это хорошо и все, но с использованием nAnt и зависимостей сборки при прохождении модульных тестов я пропускаю интересные функции?

Ответ 1

Рой Ошероу просто написал недавний пост в блоге, в котором излагаются различия между NUnit и MSTest. Я думаю, это отвечает на ваш вопрос.

Он заключает, что NUnit выигрывает за Unit Testing, но MsTest имеет гораздо лучшие возможности для тестирования на основе интеграции и тестирования команды с Team System.

Ответ 2

Я использовал как NUnit, так и MSTest. Да, есть различия. NUnit - это более старая, более основательная модульная система тестирования, предназначенная для выполнения всего одного - модульного тестирования. MSTest новее, поэтому он не имеет такого же уровня зрелости в своем API. Например, NUnit предлагает больше методов Assert, чем MSTest. (Подробнее см. http://geekswithblogs.net/sdorman/archive/2009/01/31/migrating-from-nunit-to-mstest.aspx. Чтобы добавить некоторые из отсутствующих методов Assert, см. http://geekswithblogs.net/sdorman/archive/2009/01/31/adding-custom-assertions-to-mstest.aspx).

Я не нашел, что производительность может быть проблемой с любой инфраструктурой.

Некоторые из больших различий:

  • Для запуска MSTest требуется экземпляр Visual Studio на сервере сборки. Он не содержит автономного тестового бегуна, такого как NUnit.
  • MSTest предоставляет результаты тестирования результатов и результатов непосредственно в Visual Studio. NUnit предоставляет результаты тестирования в своем собственном пользовательском интерфейсе и требует дополнительных инструментов для анализа кода покрытия кода.

Ответ 3

Я использую MSTest на работе, потому что мне нужно, и, честно говоря, я нахожу это медленным и раздражающим. Если бы у меня был мой выбор, это был бы xunit.net(в основном, как nunit, немного менее подробный) + тестовый бегун для интеграции IDE.

Ответ 4

Смотрите MSBuild, NAnt, NUnit, MSTest и расстройство. Если вы не используете TFS в качестве сервера CI/build, вы можете серьезно рассмотреть NUnit или один из других проектов с открытым исходным кодом.