Домой » Практика » .net » Сравнение xUnit.net, NUnit и MSTest

Сравнение xUnit.net, NUnit и MSTest

Тестовые фреймворки для C#Это даже не самые популярные тестовые фреймворки для C#, а единственные. Каждый из них обладает своими недостатками и преимуществами. Цель этой статьи — подробно разобраться в каждом из них и понять, какой из фреймворков больше подходит для определённых задач.

MSTest — детище Microsoft

Начиная с Visual Studio 2005 по умолчанию тестовым фреймворком считается MSTest, который устанавливается одновременно со студией. Это довольной простой в освоении фреймворк, одновременно в нём мало различных плюшек. В целом это неплохой вариант для тех, кому нужны не слишком замысловатые тесты и нет желания заморачиваться с чем-то другим.

Стоит заметить, что в последнее время популярность MSTest сильно упала. По отсутствию активности в его поддержке и усовершенствованию можно сделать вывод, что Microsoft постепенно на него забивает. Одновременно с этим периодически доносятся слухи, что в детище Билла Гейтса посматривают в сторону xUnit.net.

NUnit — мейнстрим в тестировании

Данная тула пока что правит балом. На текущий момент это лидер данной тройки, при чём лидирует NUnit с большим отрывом. И не помешал ему тот факт, что ставить его надо Nuget — пакетом. NUnit представляет из себя мощное средство для тестирования и имеет различные варианты для запуска. В настоящее время NUnit широко используется в unit — тестировании, интеграционном и автоматизированном тестированиях.

xUnit.net — создан, чтобы стать другим

Главная причина, по которой был создан xUnit.net, — переосмысление unit — тестирования используя предыдущий опыт. В отличии от того же NUnit, в xUnit.net присутствуют значительные изменения. Первым делом стоит отметить отсутствия setup (заменён параметризированным конструктором) и teardown (вместо него можно использовать IDisposable интерфейс) методов, потому что по убеждению создателей они являются «злом». Вместо [Test] используется [Fact]. В дополнение к этом разработчики выпилили [ExpectedException] атрибут, а проверка на эксепшен теперь происходит в ассерте.

Сравнение фреймворков

В этом разделе данной статьи я постараюсь указать основные существенные отличия фреймворков.

C Visual Studio лучше всех работает MSTest, остальным же надо устанавливать свои адаптеры, ReSharper или отдельные приложения для запуска. В плане параллельного запуска, то до недавнего времени у NUnit были свои косяки: можно было запускать только классы, остальные заявленные виды не работали. В плане интеграции с платформами, то xUnit.net начинает всех опережать, работа с ним поддерживается во многих видах современных приложений: UWP, Xamarin, .NET Core. Если рассматривать гибкость и возможности написания тестов, интеграцию с CI и скорость, то MSTest тут явный аутсайдер. xUnit.Net кроме конфигурации с помощью XML поддерживает также и JSON.

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

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*