Модульный тест, NUnit или Visual Studio?

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

, Таким образом, необходимо только выключить Ползунок для приложения как 3D игры...

114
задан Guilherme Fidelis 22 September 2016 в 12:18
поделиться

8 ответов

NUnit имеет несколько преимуществ перед атрибутом MS-Test

  1. Suite - может агрегировать тесты и выполнять их по отдельности (полезно для больших проектов с быстрыми и медленными тестами, например)
  2. Readable Assert method , например, Assert.AreEqual (ожидаемый, фактический) vs Assert.That (фактический, Is.EqualTo (ожидаемый))
  3. NUnit имеет частые обновления версий - MS-Test имеет только одно обновление для каждой VS версия.
  4. Многие интегрированные бегуны, включая Resharper и TestDriven.NET
  5. Утверждение ожидаемого сообщения об исключении - может быть выполнено с использованием атрибута в NUnit, но должно выполняться с помощью Try-Catch в MS-Test
  6. [TestCase] ​​! NUnit позволяет параметризованные тесты.
98
ответ дан 24 November 2019 в 02:33
поделиться

С моей текущей точки зрения (после 8 месяцев разработки в среднем около 10 разработчиков) я бы посоветовал против использования MSTest по следующим причинам

  • Сама структура вполне медленный. Я не имею в виду тестовый код, который вы пишете - это под вашим контролем. Я имею в виду структуру, в которой тесты медленные, работает ли он набор тестов, отдельные тесты и т. д.
  • Необходимость хранить файл Test-Metadata что всегда приводит к осложнениям когда работают несколько разработчиков на нем (воссоздание, например, метаданных так далее.). Все остальные наборы тестов не нужен файл метаданных. Это своего рода приятно организовать твои тесты, но ты можно добиться того же через пространства имен, классы и имена методов.
  • При непрерывной интеграции, если вы хотите запускать модульные тесты на вашем компьютере сборки, вам нужно будет установить Visual Studio на этом компьютере.

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

72
ответ дан 24 November 2019 в 02:33
поделиться

NUnit работает со стандартной версией VS.

3
ответ дан 24 November 2019 в 02:33
поделиться

NUnit можно использовать в сочетании с Visual Studio. Это фреймворк, а не отдельная программа. Так что вы можете позаботиться о том, подходит ли он вам :).

alt text http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=nunitit&DownloadId=61802[1225 visible"После установки плагина вы найдет новое подменю в меню инструментов. "

См. http://nunitit.codeplex.com/ для получения дополнительной информации об импорте.

Кроме того, многое можно найти с помощью поиск SO.

18
ответ дан 24 November 2019 в 02:33
поделиться

Вот мой опыт работы с MS Test

  • Мы запускаем MS Test примерно с 3800 Test.
  • Тестам требуется очень много времени, чтобы просто начать выполнение, что болезненно при запуске одиночные тесты.
  • Для выполнения тестов требуется около 1 ГБ памяти. Нет, в наших тестах это не связано с утечкой памяти. Часто мы сталкиваемся с OutOfMemoryExceptions.
  • Поскольку он использует столько ресурсов, мы начинаем выполнять тесты из командных файлов. Так для чего нужна вся интеграция?
  • Она глючит и нестабильна:
    • Например, если вы удалите атрибут [Игнорировать] из теста, он не распознает его, поскольку где-то кэширует информацию о тестах. Вам необходимо обновить список тестов, что иногда решает проблему, или перезапустить VS.
    • Он случайным образом не копирует ссылочные сборки в исходный каталог.
    • Элементы развертывания (дополнительные файлы, которые должны использоваться) просто не работают должным образом. Они случайным образом игнорируются.
  • В файлах vsmdi и testrunconfig есть скрытая (не видимая в тестовом коде) информация. Если вас это не волнует, это может не сработать.
  • Функционально он может быть сопоставим с NUnit, но это очень дорого, если вы рассматриваете возможность использования версии тестера VS.

Дополнение: У нас есть еще несколько сейчас тестов, даже не могу сказать сколько. Их все больше невозможно запустить из Visual Studio, из-за OutOfMemoryExceptions и других проблем нестабильности. Запускаем тесты из скриптов. Было бы легко просмотреть результаты тестирования в Visual Studio, но когда решение открыто, VS дает сбой (каждый раз). Поэтому нам нужно искать неудачные тесты с помощью текстового поиска. Больше нет преимущества интегрированного инструмента.


Другое обновление : Сейчас мы используем VS 2013. Много чего изменилось. Они переписали средство запуска тестов MS Test в третий раз с нашего старта. Это вызвало множество критических изменений, но ни одна новая версия не улучшила ничего. Мы рады, что не использовали необычные функции MS Test, потому что все они больше не поддерживаются. Это действительно обидно. Мы по-прежнему используем сценарии для создания и запуска всех модульных тестов, потому что это удобнее. Visual Studio потребовалось несколько минут для запуска тестов (время измеряется после компиляции до первого запуска теста). Вероятно, они исправят это с помощью обновления, и это может быть конкретной проблемой нашего проекта. Однако Resharper намного быстрее выполняет те же тесты.

Заключение : По крайней мере, в сочетании с Resharper, MS Test полезен. И я надеюсь, что они наконец-то узнают, как должен быть написан тестовый раннер, и не будут вносить такие критические изменения, когда мы обновим Visual Studio в следующий раз.

49
ответ дан 24 November 2019 в 02:33
поделиться

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

1
ответ дан 24 November 2019 в 02:33
поделиться

NUnit - это фреймворк для модульного тестирования, который также поддерживается resharper. Я думаю, вы используете платформу модульного тестирования Microsoft, поэтому NUnit - это просто альтернатива продукту Microsoft;)

Вот ссылка на домашнюю страницу NUnit: http://nunit.org

1
ответ дан 24 November 2019 в 02:33
поделиться

Самым большим преимуществом MS-Test перед NUnit является то, что MS-Test может генерировать фиктивные объекты с помощью Reflection. Я нашел это очень полезным

6
ответ дан 24 November 2019 в 02:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: