Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

:

Ганзельминуты #112

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

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

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

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

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

Попробуйте также ПЕКС инструмент Это собственный инструмент Microsoft, который, вероятно, скоро будет интегрирован в VSTS и поддерживает NUnit , MbUnit и xUnit.net

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

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

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

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

Я бы также сказал MbUnit, мне нравится иметь возможность запускать один тест много раз, просто указав входные данные и результат прямо над тестовой функцией.Ужасное описание того, что я имею в виду, так что вот ссылка, которая показывает вам, что я имею в виду.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top