В чем разница между платформой .NET Unit Testing? - PullRequest
4 голосов
/ 02 марта 2009

Я слышал много разных мнений о том, что делает одно лучше другого. Но может ли кто-нибудь дать техническое объяснение относительно того, почему я должен выбрать одну платформу модульного тестирования вместо другой. Например, я использую Visual Studio Team System. Зачем мне выбирать среду тестирования с открытым исходным кодом (NUnit, xUnit, MbUnit и т. Д.) Вместо встроенных возможностей модульного тестирования Visual Studio? Имеет ли это значение?

Редактировать: Для ясности, я не ищу мнения о том, "какие рамки модульного тестирования лучше всего" ... Я ищу технические подробности о том, чем они отличаются.

Ответы [ 3 ]

7 голосов
/ 02 марта 2009

Сравнение атрибутов и различий между NUnit, MbUnit, MSTest и xUnit.net в http://www.codeplex.com/xunit/Wiki/View.aspx?title=Comparisons

Что касается решения MSTest vs OpenSource, широко известно, что в пакетах с открытым исходным кодом, в частности MBUnit и xUnit.net, происходят инновации в области модульного тестирования.

Тем не менее, теперь, когда Peli de Halleux работает на MS и производит инновации, такие как Pex все может измениться.

5 голосов
/ 02 марта 2009

Я работал только с NUnit и той же версией Microsoft. На мой взгляд, они больше похожи, чем они разные. Однако, в зависимости от настроек вашего проекта, существует ряд финансовых соображений, которые могут иметь значение.

Среда тестирования Microsoft недоступна в их менее дорогих / бесплатных SKU, но как только вы заплатите за весь пакет (который я знаю, что это не недорого), вы получаете модульное тестирование, тестовый запуск и покрытие кода в одном пакет, что очень удобно.

Если вы переключитесь на NUnit, вам придется либо отказаться от интеграции VS, либо получить тестовый прогон, такой как TestDriven.NET или Resharper. Когда я посмотрел на них, им обоим потребовались лицензии для коммерческого использования. То есть стоимость за разработчика увеличивается. Кроме того, эти инструменты не имеют покрытия кода, поэтому вы должны получить что-то вроде NCover. Опять же, это несло лицензию для коммерческого использования, когда я проверял.

По общему признанию, прошло много времени с тех пор, как я изучал этот вопрос, поэтому лицензирование могло измениться, но дополнительные затраты на одного разработчика были одной из причин, по которым мы решили использовать решение Microsoft. Может случиться так, что VS Express плюс другие инструменты дешевле, чем VS Team Foundation, но так как нам все равно пришлось использовать VS TF, это нам мало что дало.

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

2 голосов
/ 02 марта 2009

Я работал с несколькими фреймворками для модульного тестирования для .NET и не обнаружил, что какая-либо из них кардинально отличается от другой для моих целей.

Первоначально аргумент против использования модульного тестирования, включенного в Visual Studio Team System, заключался в том, что люди, использующие меньшую версию Visual Studio, не могли выполнять ваши тесты. Теперь это меньше проблем, так как я считаю, что VS Pro теперь включает модульное тестирование. Мне понравилось, что Visual Studio может автоматически генерировать для вас множество тестовых наборов.

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

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