Консультации по.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"

:

Hanselminutes # 112

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, мне нравится многократно запускать один тест, просто указав входные данные и результат прямо над функцией теста. Ужасное описание того, что я имею в виду, так что вот ссылка, которая показывает вам, что я имею в виду.

Другие вопросы по тегам