Рекомендуемая среда модульного тестирования для новых проектов .NET - PullRequest
1 голос
/ 06 июня 2009

Я собираюсь запустить новое приложение на C #, что, вероятно, займет некоторое время (читай:> 1 год). Я хочу, чтобы он оставался кроссплатформенным, то есть он должен работать с использованием Mono, но моей основной платформой разработки является Visual Studio.

Сейчас я изучаю тестовые среды, но мне интересно, какой из них вы бы выбрали, будучи переносимым и надежным в будущем. Прямо сейчас nUnit кажется стандартом, но, учитывая xUnit.net, мне интересно, будет ли это лучше, так как кажется, что он более активно развивается. Или я должен придерживаться только MSTest? В конце концов, я могу ожидать, что MSTest будет поддерживаться в течение нескольких лет. Для Java это был бы довольно явный JUnit, поскольку он поддерживается везде, но ландшафт .NET выглядит гораздо более фрагментированным.

Таким образом, главный вопрос не в особенностях и т. Д. (MSTest в любом случае не слишком звезден в этом направлении), а скорее в долгосрочной надежности. В этом свете, какие рамки модульного тестирования вы можете порекомендовать?

Ответы [ 3 ]

3 голосов
/ 06 июня 2009

MSTest, конечно, не является переносимым и привязан к Visual Studio. Если вы нацелены на Mono, то в идеале ваши тесты также должны выполняться на Mono. Mono сам использует nUnit , а точнее nUnitLite - так что это может повлиять на ваше решение. Добавление TestDriven.Net или Resharper к вашему набору инструментов позволяет легко запускать nUnit в VS - но они не бесплатны, если это проблема, вы можете попробовать NUnitit

1 голос
/ 06 июня 2009

NUnit действительно поддерживается везде. Наш магазин (более 200 разработчиков) только что перешел из MSTest в NUnit, и до сих пор мы не сталкивались с проблемами отсутствия поддержки инструментов: фактически, скорее наоборот, кажется, что инфраструктура поддержки вокруг NUnit очень обширна. Это касается систем непрерывной интеграции, таких как Hudson и Cruise Control.

Мы обнаруживаем, что разработка NUnit продолжает быть очень активной. Версия 2.5 включает такие функции, как

Assert.Throws
, которые были взяты из XUnit, но сохраняет обратную совместимость с тестами, использующими
[ExpectedException]

В MSTest отсутствуют многие из этих функций. Некоторые, такие как

[TestCase]
, очень полезны в средах с открытым исходным кодом: они не просто «пух», а уменьшают объем тестируемого кода, который вам нужно написать и отладить.

Одним из основных положительных аспектов MSTest является тесная интеграция с Team Foundation Server. Это позволяет связывать модульные тесты с отчетами об ошибках и номерами сборок: удобная функция, если вы достаточно дисциплинированы, чтобы ее использовать.

1 голос
/ 06 июня 2009

Полагаю, вы ищете субъективные ответы. Мне нравится NUnit . Стабильность на «интерфейсе» не создала для меня никаких проблем. Он хорошо работает с любой IDE и интегрирован со многими инструментами сборки. Также, если вы знаете JUnit, вы найдете NUnit очень естественным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...