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

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

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

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

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

Ответов (11)

Решение

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

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

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

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

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

Мне нравится TestDriven.NET (хотя я использую ReSharper), и я очень доволен XUnit.net . Он использует факты вместо тестов, которые многим не нравятся, но мне нравится разница в терминологии. При внесении изменений полезно подумать о коллекции автоматически доказываемых фактов о вашем программном обеспечении и посмотреть, какие из них вы нарушаете.

Имейте в виду, что Visual Studio 2008 Professional (и выше) теперь поставляется со встроенным модульным тестированием (раньше оно было доступно только с выпусками Team System) и может подойти для ваших нужд.

Похоже, что xUnit.net предлагает несколько иной подход к NUnit, MbUnit и MSTest , что интересно.

В моем поиске решения, подобного RSpec (потому что мне нравится RSpec), я также наткнулся на NSpec , который выглядит немного многословным, но в сочетании с надстройкой NSpec Extensions для использования методов расширения C# 3 выглядит довольно красиво.

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

Раньше я использовал NUnit, но перешел на MbUnit, так как в нем больше возможностей.

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

NUnit, MSTest и т. Д. Делают примерно одно и то же. Однако я считаю, что NMock незаменим.

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

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

Работать с NUnit + ReSharper - одно удовольствие.

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

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

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

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

Typemock Isolator - фреймворк имитаций для модульного тестирования .NET

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

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