Советы по платформе тестирования .NET
Я хочу добавить в свою работу структуру модульного тестирования. Мы используем Visual Studio 2005 (хотя мы, возможно, перейдем к 2008 году в течение следующих шести месяцев) и работаем в основном на C#. Если у фреймворка есть какая-то интеграция с IDE, это было бы лучше всего, но я открыт для фреймворков, которые не имеют интеграции, но все еще относительно просты в настройке. Я собираюсь получить сопротивление этому так или иначе, поэтому, если я могу убедиться, что то, что я толкаю, не вызывает боли в шее, это поможет моему делу.
Очевидный выбор из исследований, которые я сделал до сих пор, указывает на NUnit, но я хотел бы получить впечатления от кого-то, кто действительно использовал его, прежде чем рекомендовать его своей команде.
Кто-нибудь использовал NUnit ? Если да, то есть ли какие-то подводные камни или ограничения, о которых мне следует знать? Есть ли другие хорошие варианты? Если да, то если вы использовали при этом оба NUnit, я был бы очень признателен за представление о их сильных и слабых сторонах.
Ответов (10)10
Я думаю, что NUnit - ваш лучший выбор. С TestDriven.NET , вы получите большую интеграцию в Visual Studio. (ReSharper также имеет средство запуска модульных тестов, если вы его используете). NUnit прост в использовании и следует устоявшейся парадигме. Вы также найдете множество проектов, руководств и руководств, использующих его, что всегда помогает.
Другой ваш основной выбор - это, вероятно, MbUnit , который все больше и больше позиционирует себя как предпочтительный фреймворк BDD (вместе с Gallio ).
Visual Studio 2008 имеет встроенный тип тестового проекта, который работает аналогично NUnit, но, очевидно, имеет гораздо более тесную интеграцию с Visual Studio (может работать в каждой сборке и показывает результаты аналогично странице результатов преобразования при обновлении. файлы решения), но он явно не такой зрелый, как NUnit, поскольку он довольно новый, и я не уверен, как он справляется с издевательством.
Но на это стоит обратить внимание, когда ваша команда перейдет на Visual Studio 2008.
Я бы сказал также MbUnit . Мне нравится иметь возможность запускать один тест много раз, просто указывая входные данные, и результат находится прямо над функцией тестирования. Это ужасное описание того, что я имею в виду, поэтому вот ссылка, которая показывает вам, что я имею в виду .
Когда я начал модульное тестирование, я начал с NUnit, поскольку его просто настроить и использовать. В настоящее время я использую встроенную программу запуска тестов, поставляемую с ReSharper . Таким образом, я могу легко переключаться между кодом и результатами тестирования.
Между прочим, NUnit определяет, когда вы скомпилировали свой код, поэтому вам не нужно выполнять какие-либо обновления в NUnit. ReSharper автоматически выполняет сборку, когда вы выбираете запуск определенного теста.
Встроенное модульное тестирование в Visual Studio 2008 - это нормально , но его сложно интегрировать с CruiseControl.NET , конечно, намного сложнее, чем с обычным NUnit.
Так что переходите к NUnit, если вы планируете иметь хорошие автоматизированные тесты.
Попробуйте также инструмент PEX .
Это собственная разработка Microsoft, которая, вероятно, скоро будет интегрирована в VSTS . Он поддерживает NUnit, MbUnit и xUnit.net .
Я также использую небольшое консольное приложение для тестирования одного класса или небольшой библиотеки. Вы можете скопировать и вставить код отсюда .