Как NUnit для C # сравнивается со средством Unit Test, интегрированным с Visual Studio

12

Мне нужно работать в команде, чтобы разработать настольное приложение среднего уровня, разработанное с использованием C # .NET. До этого я не применял модульное тестирование и разработку через тестирование. Мне известно, что существует множество инструментов и сред для модульного тестирования приложений на C #. На данный момент мне известно о Nunit и модульном тестировании, интегрированных с Visual Studio.

Я хотел бы знать, как эти два сравниваются?

Шамим Хафиз
источник

Ответы:

14

Между ними наверняка есть некоторое совпадение. NUnit является предшественником, и в результате более зрелым. Инфраструктура модульного тестирования C # более молодая, но интегрирована с Visual Studio.

Я пришел из мира Java, где JUnit - король (есть другие, но ни один из них не столь популярен), и NUnit 2.5.x действительно хорошо подходит для работы JUnit 4. На самом деле, он работает намного лучше, чем аналог Java.

Что касается определения теста, я предпочитаю NUnit. Конечно, у MS Test есть похожие (но разные) атрибуты, которые вы применяете к своим классам, но я считаю, что в нем отсутствуют некоторые функции, которые могли бы сэкономить вам некоторую работу над некоторыми видами тестирования. Вы можете проверить подобное обсуждение StackOverflow .

Мне нравится новая модель утверждений, встроенная в NUnit (она использует утверждения стиля Hamcrest ), потому что они легко читаются и легко расширяемы.

  • NUnit будет иметь лучшую стороннюю поддержку, MS Test будет иметь лучшую интеграцию (из коробки).
  • NUnit будет иметь лучшую гибкость и расширяемость, MS Test пострадает в этой области.
  • Оба запускают юнит-тесты и проверяют ваши результаты, оба будут работать на TDD.
Берин Лорич
источник
3

Единственное реальное различие, которое я заметил, когда мне нужно было создать скрипт сборки для запуска на выделенном сервере MSBUILD из TFS, настроить nUnit и получить результаты теста nUnit - это было очень сложно, настроить его и получить результаты для MSTest было очень просто.

Также была проблема с Resharper, когда тест MSTest не мог быть запущен из тестового бегуна. В более новых версиях это исправлено, поэтому, если у вас старая версия Resharper, это все еще может быть проблемой.

Этот пост от Роя Ошереве все еще хороший обзор.

PS: удалил мой другой ответ, не помог, мои извинения за это.

KeesDijk
источник