Консультации по.NET Testing Framework
Я собираюсь представить фреймворк модульного тестирования в моей работе. Мы используем Visual Studio 2005 (хотя мы можем перейти на 2008 в течение следующих 6 месяцев) и работаем в основном на C#. Если фреймворк имеет какую-то IDE-интеграцию, которая была бы наилучшей, но я открыт для фреймворков, которые не имеют интеграции, но все же относительно просты в настройке. Я получу сопротивление этому, так или иначе, поэтому, если я смогу убедиться, что то, что я толкаю, не является болью в шее, это помогло бы моему делу.
Очевидный выбор из исследования, которое я до сих пор проводил, указывает на nUnit, но я бы хотел получить впечатления от того, кто действительно использовал его, прежде чем рекомендовать его моей команде.
Кто-нибудь там использовал nUnit? Если так, есть ли какие-либо подводные камни или ограничения, о которых я должен знать? Есть ли другие хорошие варианты там? Если так, если вы использовали оба nUnit, я был бы очень признателен за их сильные и слабые стороны.
10 ответов
Я думаю NUnit
это ваша лучшая ставка. С TestDriven.NET
вы получаете большую интеграцию в VS.NET
, (У Resharper также есть модульный тестер, если вы его используете). NUnit
он прост в использовании и следует установленной парадигме. Вы также найдете множество проектов / учебных пособий / руководств, которые всегда помогают.
Ваш второй основной выбор, вероятно, MBUnit, который все больше и больше позиционирует себя как BDD
рамки выбора (совместно с Gallio http://www.gallio.org/).
Скотт Хансельман имел хороший подкаст об этом под названием:
"Прошлое, настоящее и будущее систем модульного тестирования.NET"
:
Visual Studio 2008
имеет встроенный тип тестового проекта, который работает аналогично NUnit, но, очевидно, имеет более тесную интеграцию с Visual Studio
(может выполняться при каждой сборке и отображает результаты аналогично странице результатов преобразования при обновлении файлов решения), но, очевидно, он не настолько зрелый, как NUnit, а довольно новый, и я не уверен, как он справляется с имитацией.
Но стоит подумать, когда ваша команда переедет в VS2008
Встроенное модульное тестирование в VS 2008
хорошо, но его трудно интегрировать с CruiseControl.net
, конечно, намного сложнее, чем обычно NUnit
,
Так что иди с NUnit
если вы планируете иметь хорошие автоматизированные тесты.
Мы использовали xUnit.net. Кажется, чтобы объединить все лучшее nUnit
, mbUnit
а также MSTest
,
Попробуйте также инструмент PEX. Возможно, скоро Microsoft самостоятельно интегрируется в VSTS и поддерживает NUnit
, MbUnit
а также xUnit.net
Я использую также небольшое Консольное приложение для тестирования одного класса или небольшой библиотеки. Вы можете скопировать вставить код отсюда
Когда я начал модульное тестирование, я начал с NUnit
так как это просто установить и использовать, в настоящее время я использую встроенный тестер, который поставляется с Resharper
Таким образом, я могу легко переключаться между кодом и результатами теста.
Incidently NUnit
определяет, когда вы скомпилировали код, поэтому вам не нужно делать никаких обновлений в NUnit
, Resharper
автоматически выполняет сборку, когда вы решаете запустить определенный тест.
VSTT 2010
должна быть хорошая ставка, если вы ищете для автоматизации функциональных испытаний. Тестирование веб-сервисов, UI
тестирование, тестирование Biztalk и поддержка Data Driven Testing. Пожалуйста, посмотрите на VSTT
mbUnit
стоит посмотреть, у него есть набор функций, сравнимый с NUnit
, имеет собственный графический интерфейс или может быть интегрирован в VS
если у вас есть Resharper
, Я бы также рекомендовал Rhino Mocks
если вы делаете какой-либо TDD
,
Я бы также сказал, что mbUnit, мне нравится многократно запускать один тест, просто указав входные данные и результат прямо над функцией теста. Ужасное описание того, что я имею в виду, так что вот ссылка, которая показывает вам, что я имею в виду.