Подтвердить что ты не робот

Пробные модульные тесты

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

К сожалению, VS также выполняет все медленные тесты. В VS10 я сгруппировал тесты в Test View по проекту и выбрал только те, которые содержат модульные тесты. Это было не так просто, как хотелось бы, но, по крайней мере, это было возможно. Теперь, похоже, не существует способа запустить все тесты в решении.

Единственная альтернатива, которую я вижу на данный момент, - удалить все решения, кроме модульных тестов, но это ограничит возможности рефакторинга.

Так кто-нибудь знает, как легко группировать и запускать только модульные тесты в новом VS?

4b9b3361

Ответ 1

В Visual Studio 2012 Update 1 CTP Test Explorer добавила возможность группировать тесты по Project или Traits (Categories).

Перейдите по этой ссылке, чтобы узнать, что нового там.

Ответ 2

Вы можете использовать фильтр поиска в модульном текстовом проводнике.

enter image description here

В новом тестировании Exlorer, поставляемом с 2012 годом, вы можете группировать тесты "Результаты тестов", "Имя файла",... и т.д., но в группе RTM build/search "TestCategory" нет в Test Explorer. Однако есть фильтр в командной строке и TeamBuild на основе TestCategory (запуск выборочных модульных тестов в VS 2012 RC с использованием TestCaseFilter) в VS2012.

От участника VS dev Team они поняли важность этой недостающей функции. Он находится в отставании, и он должен быть доступен в сборках/обновлениях furutre.

Следующий блог содержит более подробную информацию: http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx

Ответ 3

Как и в Visual Studio 2012 Update 2 (в настоящее время на CTP), теперь мы можем запустить подмножество unit test с помощью "Плейлистов" или на основе "Списки и классы". Дополнительная информация здесь: http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/30/first-ctp-for-visual-studio-update-2.aspx#playlists

Оригинальный ответ:

AFAIK, новая платформа тестирования модулей в VS2012 "поддерживает выборочное выполнение на основе условия фильтрации через TestCaseFilter". К сожалению, в настоящее время нет поддержки для этого через пользовательский интерфейс, но он находится в отставании группы продуктов. Этот подход можно использовать с помощью Test Build или командной строки. Пожалуйста, обратитесь к следующему блогу: http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx

EDIT: после документации MSDN использовать категории тестов для групповых тестов.

http://msdn.microsoft.com/en-us/library/dd286595.aspx

Также обратитесь к этому вопросу: Как исключить определенные тесты в тестовом Runner Visual Studio 2012?

Здесь показан пример фильтрации на основе тестового пути.

Ответ 4

Я бы рекомендовал использовать TestDriven.Net. Группируйте все проекты Unit Testing в одной папке с решениями и все другие тесты в другом. Затем просто щелкните правой кнопкой мыши папку "Unit Tests" и выберите "Run All Tests". Я всегда приветствую этого великолепного тестировщика собственных инструментов тестирования VS.

Другой подход заключается в использовании NCrunch - он запускает все ваши тесты в фоновом режиме во время кода. Он отлично справляется с интеграционными тестами, поскольку они работают параллельно, в фоновом режиме, поэтому он не блокирует вас (вы также выбираете, какие тестовые проекты запускаются). Один улов - я считаю, что он еще не поддерживает VS2012, но, вероятно, скоро.

Ответ 5

Мне также не хватало этой функции... (Мы сделали то же, что и вы: группировка по проекту или иногда по пространству имен). Но я обнаружил, что могу как-то обойти это с помощью возможностей поиска тестового проводника:

https://msmvps.com/blogs/deborahk/archive/2012/09/16/searching-and-grouping-in-vs-2012-test-explorer.aspx

В моем случае я мог бы определить конкретные тесты, которые мне нужно выполнить, используя фильтр поиска в FullName (используйте раскрывающееся меню в окне поиска или введите FullName: "UnitTest" )

Это не то же самое, но это работает для меня