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

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

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

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

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

5.08.2008 00:51:49
12 ОТВЕТОВ
РЕШЕНИЕ

Их так много, это безумие. Наверное, безумно хорошо.

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

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

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

53
3.09.2008 17:30:36
+1, обратите внимание, что NUnit 2.5 имеет приятные функции RowTest, а также комбинаторное тестирование аргументов и т. Д.
user7116 15.10.2008 14:40:12
Разница между MSTest и NUnit не так уж велика, если вы спросите меня. В основном это сводится к предпочтительному синтаксису, и если вы используете TesteDriven.Net, который также поддерживает MSTest, производительность практически одинакова.
Kjetil Klaussen 5.02.2009 12:06:14
Да, NUnit 2.5 имеет функции RowTest через атрибут [TestCase].
Richard Szalay 19.07.2009 20:37:27

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

1
5.08.2008 00:57:48

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

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

3
5.08.2008 02:07:50

xUnit.net выглядит немного иначе, чем N / MB / MS / Unit, что интересно.

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

6
9.01.2013 05:42:24
Вы можете посмотреть на этот NSpec ( nspec.org ). Это почти идентично RSpec.
Amir 13.08.2012 19:52:23

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

8
6.08.2008 16:07:06

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

2
6.08.2008 21:03:00

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

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

2
14.08.2008 15:04:08

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

С NUnit + ReSharper приятно работать.

8
14.08.2008 15:09:17
Почему вы должны держаться подальше от MSTest? Я был бы признателен, если бы вы на самом деле удосужились рассказать, ПОЧЕМУ вы хотите уклониться от этого. И R # также работает с MSTest (с плагином Gallio).
Kjetil Klaussen 5.02.2009 12:07:59
Привет Къетил. Это в основном по трем причинам. 1. Метаданные, которые создают тесты MS. Почему? Отражать как NUnit. 2. Тестовый бегун ужасен. 3. NUnit делает все лучше - зачем менять. Я сделал некоторое время, но потом вернулся.
Iain Holder 5.02.2009 12:24:16
Я также сталкивался с различными ошибками в тесте MS "Runner". В основном VS оставляет его запущенным в фоновом режиме, и при определенных обстоятельствах тесты, которые вы запускали 10 минут назад, могут помешать тесту, который вы собираетесь запустить прямо сейчас :-(
Orion Edwards 17.03.2009 19:43:58
Примечание: начиная с VS2017 / dotnetcore, Microsoft переписала все материалы MSTest. Сейчас есть MSTestV2 и модель / бегунок, которые во многом совпадают с тем, что вы ожидаете от NUnit и других подобных вещей, поэтому я думаю, что MSTest является гораздо более жизнеспособным вариантом в эти дни
Orion Edwards 8.01.2019 20:28:37
Интересно, я это проверю. Моему ответу уже более десяти лет, поэтому он, вероятно, менее точен, чем когда-то. :-)
Iain Holder 9.01.2019 14:37:31

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

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

6
28.08.2008 03:52:44

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

3
11.09.2008 10:54:50
Спасибо за это. Я на самом деле много играл с этим. К сожалению, IronRuby пока не способен запускать полный rspec, только mspec, который намного урезан. Тем не менее, это лучше, чем nunit / etc :-)
Orion Edwards 7.10.2008 20:58:09

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

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

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

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

5
15.10.2008 14:33:01

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

4
19.07.2009 20:34:25