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