Пакеты модульного тестирования .NET?


возвращаясь в немного больше .NET после нескольких лет не использовать его полный рабочий день, и интересно, что хорошие пакеты модульного тестирования в эти дни.

Я знаком с NUnit (несколько лет назад) и немного поиграл с IronRuby, с целью получить что-то вроде RSpec, но мало что знаю за этим.

Я понимаю, что мог бы google для этого и назвать его днем, но я считаю, что я, вероятно, получу лучший и более информированный ответ от запроса вопрос тут: -)

предложения?

12 57

12 ответов:

их так много, что это безумие. Безумно хорошо, я думаю.

  • для консервативных типов (me),Нанит все еще доступен и все еще более чем способен.
  • для Microsoft-типов,MSTest адекватный, но медленный и неуклюжий по сравнению с Нанит. Ему также не хватает покрытия кода, не платя большие деньги за дорогие версии Visual Studio.
  • там же MbUnit. Это похоже на NUnit, но имеет отличные функции, такие как RowTest (запуск одного и того же теста с разными параметрами) и откат (верните базу данных, как вы ее нашли после теста)
  • и наконец, xUnit.net это модный вариант с некоторым отношением.
  • О, и TestDriven.NET даст вам интеграцию IDE как для Nunit, так и для MBunit.

Я уверен, что они все только штраф. Я бы держался подальше от MSTest, хотя, если вы просто не наслаждаетесь удобством иметь все в одной IDE из коробки.

Скотт Хансельман есть подкаст на эту тему.

мы используем NUnit и MBUnit здесь. Мы используем TestDriven.NET для запуска модульных тестов из Visual Studio. Мы используем отличные, настоятельно рекомендуется RhinoMocks как макет рамки.

придерживайтесь NUnit. Не подходите близко к MSTest.

NUnit + ReSharper-это абсолютная радость для работы.

Я использовал NUnit, но теперь, как правило, используют MbUnit, для двух ключевых функций: 1. Функция RowTest позволяет легко выполнять один и тот же тест на разных наборах параметров, что важно, если вы действительно хотите тщательного покрытия. 2. Функция отката позволяет выполнять тесты для вашей базы данных при откате изменений после каждого теста, сохраняя вашу базу данных в точно таком же состоянии каждый раз. И это так же просто, как добавить атрибут [Rollback].

еще один приятный аспект из MbUnit заключается в том, что его синтаксис почти идентичен NUnit, поэтому, если у вас уже есть целый тестовый стенд под NUnit, вы можете просто переключить ссылки без необходимости менять их (очень много?) код.

xUnit.net похоже, он обеспечивает немного другой подход к N/MB/MS / Unit, что интересно.

в моем поиске rspec-подобного решения (потому что я люблю rspec), я также наткнулся NSpec, который выглядит немного многословным, но в сочетании с Расширения NSpec аддон для использования методов расширения C#3, это выглядит довольно хорошо.

Я использую следующий:

TestDriven.NET - модульное тестирование добавить для Visual Studio

Typemock Изолятор - издевательская платформа для модульного тестирования .Net

Нанит - платформа модульного тестирования с открытым исходным кодом, которая находится в C#.

Это старый вопрос, но вам может быть интересно, что Gallio v3.1 теперь поддерживает RSpec через IronRuby.

Я сделал небольшой пример тестирования .NET lib с помощью ironRuby: http://khebbie.dk/post/2008/08/Example-of-using-ironRubys-mini_rspec-library.aspx

Мне нравится MbUnit э, Галлио. Самое главное для меня-это хорошая поддержка инструментов внутри Visual Studio. Для этого я использую для ReSharper, имеющего MbUnit тестов. Многие люди, кажется, нравится TestDriven.NET как их бегун испытания также.

Я использовал NUnit, но я переключился на MbUnit, так как он имеет больше возможностей. Я люблю RowTest. Это позволяет параметризовать ваши тесты. Однако у NUnit есть немного лучшая поддержка инструментов. Я использую ReSharper для запуска тестов MbUnit. У меня были проблемы с TestDriven.NET запуск моих методов установки для MbUnit.

Это действительно личное мнение с моей стороны (я думаю, что это излишне, так как это форум). NUnit, MSTest, ect все делают довольно mutch то же самое. Однако я считаю NMock незаменимым.

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