NUnit vs Team System Unit Test

Что вы предпочитаете?

Каковы преимущества и недостатки каждого для модульного тестирования?

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

Ответ 1

Nunit:

Преимущества:

  • Free
  • Очень похоже на командную систему в атрибутах и ​​методах утверждения, некоторые имена даже одинаковы

Недостатки:

  • Тесты должны выполняться через консоль или внешнее приложение (это можно рассматривать как преимущество, но не с моей точки зрения).

Проверка Team System

Преимущества:

  • Часть VS, вы можете запускать тесты в тестовом окне.
  • Если вы запустите системный сервер команды, вы можете легче запускать тесты в составе автоматической сборки

Недостатки:

  • Дорого
  • Все еще не такой стабильный, как NUnit

Сравнение командной системы с Nunit

Мы используем командную систему 2008, так как мы являемся сертифицированными на золото партнерами для Microsoft, но ранее использовала Nunit из-за проблем, связанных с ошибкой в ​​VS 2005. Я предпочитаю решение VS.

Оба являются хорошими решениями для вашей работы, посмотрите также на другие бесплатные решения, такие как:

Хорошие альтернативы Team System

Ответ 2

Одна очень конкретная причина заключается в том, что NUnit не привяжет вас к профессиональной версии визуальной студии.

Обновление: Ниже приведена ссылка на поддержку тестирования модулей в версии Professional в версии 2008: http://msdn.microsoft.com/en-us/library/bb385902.aspx

Ответ 3

Еще одно преимущество NUnit заключается в том, что он не требует, чтобы вы добавляли что-либо в свои тестовые классы. MSTest требует наличия свойства TestContext. Мы начали с MSTest, но перешли в NUnit. Я также считаю, что NUnit будет значительно быстрее, и я предпочитаю пользовательский интерфейс тестировщика ReSharper.

Ответ 4

В настоящее время NUnit имеет категории тестов, которые позволяют выполнять отдельные тесты отдельно от более медленных тестов интеграции.

MS Tests не имеет такого встроенного механизма.

Ответ 5

При использовании MS Tests вы можете использовать CHESS:

CHESS - это инструмент для систематического тестирования многопоточного кода. При одновременном тестировании CHESS систематически проводит тест по всем возможным чередованием потоков.

Кроме того, я нашел хорошее сравнение здесь, в котором утверждается, что тесты MS немного медленнее, чем NUnit, но я сам не проверял.

Ответ 6

Не позволяет Visual Studio 2008 использовать другие структуры тестирования при создании тестового проекта? Я смутно помню это из просмотра старых видеороликов MVC назад, когда Hanselman делал предварительный просмотр 2 или 3 видео.

Это позволит вам использовать любую структуру тестирования, которая вам нравится, и все еще иметь возможность использовать ее в своей VS2008 IDE.

Ответ 7

Как насчет тестирования частных методов. Командная система создает автоматически теневые аксессоры с использованием отражений - делает NUnit одинаковым?

Ответ 8

Есть всегда такие инструменты, как ReSharper и TestDriven.NET. Они позволят вам запускать тесты из Visual Studio