Какие преимущества имеют другие библиотеки тестирования по сравнению с библиотекой Visual Studio 2008? - PullRequest
3 голосов
/ 29 мая 2009

Или по-другому, есть ли причина устанавливать NUnit или любую другую библиотеку и использовать ее вместо той, которая поставляется с Visual Studio 2008?

Ответы [ 7 ]

4 голосов
/ 29 мая 2009

Мы использовали инструменты тестирования MS с VS2005, и я рассматривал NUnit как замену в какой-то момент из-за некоторых проблем, которые у нас были с инструментами MS. Вот некоторые из моих выводов:

MS инструменты тестирования профи

  • Легко убедить руководство использовать инструменты, поставляемые MS (конечно, это не техническая проблема, но, вероятно, это актуально во многих компаниях)
  • Библиотеки тестов, тестовый прогон и покрытие кода хорошо интегрированы с VS
  • Централизованная отчетность и другие функции в настройке Team Foundation
  • Более или менее тот же набор функций, что и в NUnit (у меня такое ощущение, что NUnit может быть немного лучше, чем инструменты тестирования MS, но различия невелики)

Тестовые инструменты MS минусы

  • VS2005 - действительно медленный, VS2008 намного лучше, но все еще вялый для крупных решений
  • Тестовый хост - это STA, что затрудняет тестирование многопоточного кода
  • Поддержка VS немного неуклюжа, потому что они поддерживают тестирование сначала и тестирование после в одном и том же интерфейсе (так что есть две команды «новый модульный тест» -> больше работы поддержки)

В итоге переключение на NUnit оказалось нам не привлекательным по нескольким причинам:

  • Изменения в коде, не много, но с большим количеством тестов это все еще составляет немного работы
  • Повышение стоимости и сложности на место разработчика: если вы поменяете MS Test на NUnit, вы также потеряете бегуна и покрытие кода. Оба могут быть получены с помощью других инструментов, таких как R #, TestDriven.NET, NCover и т. Д., Но все это увеличивает стоимость и сложность.
3 голосов
/ 29 мая 2009

Хотите ли вы, чтобы разработчики, у которых нет Visual Studio 2008, или у которых есть только Express, могли запускать модульные тесты? Это особенно актуально для проектов с открытым исходным кодом. Если это так, я бы пошел с одной из платформ модульного тестирования с открытым исходным кодом.

1 голос
/ 29 мая 2009

Пара заметок RE MSTest ...

1) Целая команда занимается продвижением функций на рынок (буквально их работа на полный рабочий день). Эти ребята в конечном итоге получают ресурсы для написания документов, точек интеграции в другие продукты Microsoft, обсуждения достижений общего тестового сообщества и того, как они попадают в тестовые продукты Microsoft и в целом, полностью функционирующий продукт, посвященный усилиям. Когда вы идете с MSTest, вы получаете полную выгоду от усилий этих людей и долларов, которые инвестирует г-жа.

2) Веб-тестирование и стресс-тестирование. Существует еще целая другая специальная группа (отдельно от группы MSTest), которая занимается веб-тестированием и стресс-тестированием. Это огромные дополнения к тестовому стеку от Microsoft. Они предлагают способы симуляции онлайн-пользователей, использования сложных манипуляций с пропускной способностью, проверки производительности сервера и многое другое. Материалы для веб-тестирования и стресс-тестирования - это БОЛЬШАЯ причина, чтобы по-настоящему серьезно взглянуть на стек MS Test.

3) Функциональное тестирование ... Ms добавляет полную поддержку автоматического тестирования пользовательского интерфейса, и это действительно завершит их предложение. В предыдущих версиях инструментов MS Test оно отсутствовало, но следует учитывать, что полностью интегрированный набор инструментов тестирования пользовательского интерфейса действительно увеличит общий объем инвестиций в технологию тестирования MS.

4) Как отмечено выше - испытание на удар. С точки зрения разработчиков - это ПУТЬ круто. Как уже упоминалось - инструменты выбора правильных модульных тестов пройдены по охвату кода модульного теста. Таким образом, редактор редактирует существующий класс и т. Д., И инструмент специально указывает на тесты, которые влияют на регистрацию. КСТАТИ - это отличный пример исследования, которое вы получили из того, что я упомянул в # 1.

.... Кстати - полное раскрытие информации - я работал над VSTS напрямую - и полностью считаю его частью моей семьи - так что да - я совершенно скомпрометирован с точки зрения фаворитизма.

Что касается средств тестирования не MS ...

A) Вы не можете игнорировать усилия других компаний или всего сообщества открытого исходного кода. Действительно, MS по-прежнему проигрывает, если учесть, с одной стороны, все сообщество разработчиков ПО с открытым исходным кодом и все другие усилия компании против нескольких групп разработчиков продуктов Microsoft. ОДНАКО, усилия MS в основном скоординированы (хотя и не всегда) и имеют тенденцию иметь, по крайней мере, мягкие точки интеграции (хотя, опять же, не всегда).

B) Ускоренный переход от других поставщиков / сообщества открытого исходного кода. Ms совершенствуется - НО - нет - другие сообщества и поставщики делают все возможное, чтобы MS выходила на рынок. Это ничем не отличается от новшеств в тестовом инструменте.

C) ***** Другие инструменты тестирования отлично справятся с задачами из стека, отличного от ms. Ms инструменты будут в порядке в некоторых случаях - а в других случаях совершенно пропустить лодку. Много раз большая победа от инструментов MS не доступна для других технологий (читай NON-MS) технологических стеков - ... Другие поставщики и сообщество открытого исходного кода (очевидно) предоставляют гораздо более убедительную поддержку.

В конце ... я бы предложил следующее: если вы работаете в стеке MS и имеете инвестиции в Visual Studio - в частности, в MSDN - и, таким образом, имеете значительный объем доступа и инвестиций в покупку инструментов MS. ... ДЕЙСТВИТЕЛЬНО, использование НЕКОТОРЫХ ФОРМ инструментов разработки и тестирования MS не составляет труда. Я даже не обсуждал интеграцию инструментов тестирования и использование остальной части VSTS - святая корова.

Однако - если вы используете другие стеки, не вкладывайте средства в инструменты разработки MS Stack / MS ... Если вы работаете в магазине, где другие ОС и тому подобное огромные сделки для установки на ПК или на сервер и т. д. Тогда, возможно, стоит проверить второстепенные элементы набора инструментов MS, но очевидно, что начинать в направлении инструментов тестирования MS будет несколько сложнее / дороже.

Надеюсь, это поможет.

1 голос
/ 29 мая 2009

Некоторые преимущества:

  • (Jon's) Вы можете запустить свои тесты в VS 2008 Express
  • Множество передовых функций построено поверх бесплатных библиотек. Например. BDD
  • В целом, имеет расширенную расширяемость *1011*, когда дело доходит до сред тестирования OSS.
  • Вы можете выполнить отладку в источнике платформ OSS и внести изменения, если это необходимо.
  • Возможно, некоторые тестовые среды , такие как xUnit , проще в освоении и обеспечивают более чистый шаблон тестирования без побочных эффектов.

Учитывая, что testdriven.net поддерживает практически все платформы тестирования OSS, вы получаете ту же (если не лучшую) интеграцию IDE, что и с VS 2008.

1 голос
/ 29 мая 2009

Я только начал использовать тестовые проекты Visual Studio. У меня нет опыта использования сторонних тестовых продуктов, но я обнаружил, что Visual Studio один вполне подходит для большинства точек.

Я думаю, что это будет сводиться к тому, что у вас есть опыт.

Если вы уже знаете, как использовать макеты NUnit и / или Rhino, тогда иди с ними.

Если у вас нет опыта работы с ними или вы не слишком заинтересованы в приобретении такого опыта, воспользуйтесь поставляемым Visual Studio.

Полезным указателем является то, что Visual Studio автоматически создаст для вас заглушки и методы доступа к методам тестирования, если щелкнуть правой кнопкой мыши и выбрать «Создать модульный тест» в любом месте кода. Особенно полезно, если вы не выполняете строгий TDD написания тестов перед кодированием.

1 голос
/ 29 мая 2009

Я думаю, что большинство тестовых проектов, созданных до VS2008, в настоящее время все еще используют другие библиотеки.

Для новых проектов, я думаю, все зависит от личного вкуса или политики компании.

Кроме того, не все версии Visual Studio поддерживают инфраструктуру тестирования, я думаю ...

0 голосов
/ 29 мая 2009

NUnit позволяет запускать тесты в определенном порядке, тогда как среда тестирования Visual Studio выполняет тесты одновременно.

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