VS 2013 MSTest vs nUnit vs xUnit

Я понимаю, что было много вопросов по этой теме, но почему-то я не нашел ответа на мои вопросы.

Моя команда ищет возможности начать автоматическое модульное тестирование нашего приложения. Мы никогда не делали этого раньше, и никто в команде не имеет большого опыта с этим. Меня попросили исследовать и найти основу для автоматизации нашего модульного тестирования. Пока что я сузил выбор доMSTest, NUnit и xUnit.

По всему интернету я читаю негативные отзывы о MSTest, но он кажется мне наиболее удобным инструментом для наших целей.

1) Наше приложение .NET

2) Мы используем лицензированную VS IDE для развития нашей команды.

3) Контроль версий - это Team Foundation Server 2010

4) Мы планируем интегрировать CI / CD как часть нашего процесса поставки программного обеспечения.

я так чувствуюMSTest интегрируется прямо в эту настройку и предоставляет самый чистый интерфейс для работы с нами. Есть ли существенное преимущество сNUnit или жеXUnit надMSTest что мы должны рассмотреть?

 Mark Seemann31 окт. 2016 г., 19:06
Написано в 2010 году, все еще действует сегодня:blog.ploeh.dk/2010/04/26/WhyImmigratingfromMSTesttoxUnit.net
 Michael Freidgeim03 февр. 2017 г., 11:32
Возможный дубликатVisual Studio 2013 MSTest против NUnit

Ответы на вопрос(3)

Решение Вопроса

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

Тем не менее, нет ничего плохого в MSTest, особенно если ваша команда не имеет большого опыта в модульном тестировании. Он хорошо интегрирован с Visual Studio и TFS, поэтому добавление тестов довольно безболезненно. И NUnit, и xUnit тоже хорошо интегрируются, но для них может потребоваться дополнительная настройка.

Продолжайте и начните с MSTest. Это простое введение в модульное тестирование. Если вы начнете сталкиваться с некоторыми ограничениями MSTest, то это будет довольно простой переход на NUnit или xUnit. Для простых случаев, это просто вопрос изменения ваших пакетов NuGet, а затем найти / заменить атрибуты.

Когда дело доходит до выбора между xUnit и NUnit, оба являются отличным выбором, но у каждого своя философия. NUnit имеет тенденцию быть более гибким и допускает диапазон стилей тестирования и может использоваться для интеграционных тестов. Однако он достаточно гибок, чтобы позволить вам выстрелить себе в ногу, и позволяет вам писать тесты, которые пуристам не понравятся. NUnit оставляет выбор за вами.

Тем не менее, xUnit, как правило, немного более самоуверен и подталкивает вас к «яме успеха» при модульном тестировании. По моему опыту, он отлично подходит для проектов «зеленого поля», но может затруднить тестирование некоторых плохо спроектированных проектов «коричневого поля» без рефакторинга.

В конце концов, вы не ошибетесь ни с одной из этих тестовых сред.

 Eric Bishard03 окт. 2016 г., 14:53
2000? лол @ Чарли, вау!
 frostymarvelous03 июл. 2017 г., 09:16
Не является ли одним из пунктов написания тестов для рефакторинга плохо спроектированного кода?
 tia27 окт. 2016 г., 08:25
Интересный пост для xUnitgithub.com/xunit/xunit/issues/350, Сообщение об ошибке подтверждения исчезло и не вернется в xUnit. Когда я вижу, как они закрывают вопрос, пока он еще спорный, я не уверен, что должен верить в их будущее развитие. Как мы могли знать, что они больше ничего не уберут ради «чистоты»?
 Charlie28 июн. 2016 г., 02:05
Примерно в 2000 году я находился в аналогичном положении, пытаясь выбрать из шести тестовых сред .NET. Я выбрал NUnit и вот я здесь. :-)
 frostymarvelous09 окт. 2017 г., 00:27
имеет смысл @Stijn
 user24770204 окт. 2017 г., 16:03
@frostymarvelous Да, но если вы не можете написать тесты без рефакторинга, вы застряли;)

Вот краткий анализ 3 рамок и ранжированы по цветам.

Легенда о раскраске:

MSTest это хорошо только потому, что он прост и интегрирован в Visual Studio и поставляется Microsoft. Это не достаточно гибко и не очень растяжимо. Но это не только инфраструктура модульных тестов, она также поддерживает интеграционные тесты, веб-тесты (нагрузочные тесты). Другие 2 - это чистые модульные тестовые рамки. Поэтому я бы сказал, что MSTest - это «мастер на все руки, мастер ничего».

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

XUnit это наименее мой выбор, потому что он следует немного другому стилю, и лично я не вижу большого преимущества перед NUnit. В некоторых случаях вам нужно будет провести некоторый рефакторинг вашего кода, чтобы соответствовать тестовым сценариям. Но это только мое мнение, так как многие предпочитают XUnit.

Я хотел бы добавить один негативный аспект XUnit. В нем нет даже базовой документации, ничего, кроме «Начало работы». Нет API, ничего.

 Damien Sawyer08 мар. 2018 г., 20:02
Возможно, это изменилось? Я нашел это более чем адекватным.xunit.github.io/#documentation

Ваш ответ на вопрос