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

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

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

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

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

12 ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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