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