Рекомендации по тестированию .NET

Я хочу представить структуру модульного тестирования в миксе на моей работе. Мы используем Visual Studio 2005 (хотя мы можем переместиться на 2008 год в течение следующих 6 месяцев) и работать в основном на С#. Если в структуре есть какая-то интеграция IDE, это было бы лучше всего, но я открыт для фреймворков, у которых нет интеграции, но по-прежнему относительно просты в настройке. Я так или иначе получаю сопротивление этому, поэтому, если я смогу убедиться, что я толкаю, это не боль в шее, это поможет моему делу.

Очевидный выбор из исследования, которое я сделал до сих пор, указывает на nUnit, но я хотел бы получить впечатления от того, кто действительно использовал его, прежде чем рекомендовать его моей команде.

Кто-нибудь там использовал nUnit? Если да, есть ли какие-либо подводные камни или ограничения, о которых я должен знать? Есть ли другие хорошие варианты? Если это так, если вы использовали оба nUnit, я бы очень признателен за их сильные и слабые стороны.

Ответы

Ответ 1

Думаю, NUnit лучший выбор. С TestDriven.NET вы получаете большую интеграцию в пределах VS.NET. (Resharper также имеет бегун unit test, если вы его используете). NUnit он прост в использовании и следует установленной парадигме. Вы также найдете множество проектов/учебников/руководств, которые всегда помогают.

Другим важным выбором, вероятно, является MBUnit, который все больше позиционирует себя как фреймворк BDD (в сочетании с Gallio http://www.gallio.org).

Ответ 2

У Скотта Гензельмана был хороший подкаст, озаглавленный:

"Прошлое, настоящее и будущее структурных модулей тестирования .NET"

:

Hanselminutes # 112

Ответ 3

Встроенное модульное тестирование в VS 2008 в порядке, но его трудно интегрировать с CruiseControl.net, конечно, намного сложнее обычного NUnit.

Итак, идите с NUnit, если у вас запланированы хорошие автоматические тесты.

Ответ 4

Visual Studio 2008 имеет встроенный тип тестового проекта, который работает аналогично NUnit, но, очевидно, имеет гораздо более тесную интеграцию с Visual Studio (может выполняться на каждой сборке и показывает результаты аналогично результатам преобразования страницы при обновлении файлов решений), но он явно не настолько зрелый, как NUnit, поскольку он довольно новый, и я не уверен, как он обрабатывает насмешку.

Но стоит посмотреть, когда ваша команда переместится на VS2008

Ответ 5

Мы использовали xUnit.net. Кажется, он объединяет все лучшее nUnit, mbUnit и MSTest.

Ответ 6

Когда я начал модульное тестирование, я начал с NUnit, поскольку его просто настроить и использовать, в настоящее время я использую встроенный тестовый бегун, который поставляется с Resharper, таким образом, я могу легко переключаться между кодом и тестом Результаты. Случайно NUnit обнаруживает, когда вы скомпилировали свой код, поэтому вам не нужно обновлять его в NUnit. Resharper автоматически выполняет сборку, когда вы решите запустить определенный тест.

Ответ 7

Попробуйте также PEX tool Вероятно, вскоре Microsoft будет интегрирована в VSTS и поддерживает NUnit, MbUnit и xUnit.net

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

Ответ 8

mbUnit заслуживает внимания, у него есть набор функций, сравнимый с NUnit, он имеет свой собственный графический интерфейс или может быть интегрирован в VS, если у вас есть Resharper. Я бы также рекомендовал Rhino Mocks, если вы делаете какой-либо TDD.

Ответ 9

VSTT 2010 должна быть хорошей ставкой, если вы ищете автоматизацию функциональных тестов. Тестирование веб-сервисов, тестирование UI, тестирование Biztalk и поддержка тестирования данных. Посмотрите VSTT