Ответ 1
В Visual Studio 2012 Update 1 CTP Test Explorer добавила возможность группировать тесты по Project или Traits (Categories).
Перейдите по этой ссылке, чтобы узнать, что нового там.
В нашем решении у нас есть несколько тестовых проектов. Большинство из них содержат модульные тесты, которые работают быстро, но некоторые из них предназначены для тестирования интеграции, принятия и UI, которые занимают довольно много времени. Теперь я хотел бы иметь удобный способ запуска только модульных тестов. Либо используя горячую клавишу для запуска всех, либо используя новую функцию для запуска тестов после каждой сборки.
К сожалению, VS также выполняет все медленные тесты. В VS10 я сгруппировал тесты в Test View по проекту и выбрал только те, которые содержат модульные тесты. Это было не так просто, как хотелось бы, но, по крайней мере, это было возможно. Теперь, похоже, не существует способа запустить все тесты в решении.
Единственная альтернатива, которую я вижу на данный момент, - удалить все решения, кроме модульных тестов, но это ограничит возможности рефакторинга.
Так кто-нибудь знает, как легко группировать и запускать только модульные тесты в новом VS?
В Visual Studio 2012 Update 1 CTP Test Explorer добавила возможность группировать тесты по Project или Traits (Categories).
Перейдите по этой ссылке, чтобы узнать, что нового там.
Вы можете использовать фильтр поиска в модульном текстовом проводнике.
В новом тестировании 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
Как и в 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?
Здесь показан пример фильтрации на основе тестового пути.
Я бы рекомендовал использовать TestDriven.Net. Группируйте все проекты Unit Testing в одной папке с решениями и все другие тесты в другом. Затем просто щелкните правой кнопкой мыши папку "Unit Tests" и выберите "Run All Tests". Я всегда приветствую этого великолепного тестировщика собственных инструментов тестирования VS.
Другой подход заключается в использовании NCrunch - он запускает все ваши тесты в фоновом режиме во время кода. Он отлично справляется с интеграционными тестами, поскольку они работают параллельно, в фоновом режиме, поэтому он не блокирует вас (вы также выбираете, какие тестовые проекты запускаются). Один улов - я считаю, что он еще не поддерживает VS2012, но, вероятно, скоро.
Мне также не хватало этой функции... (Мы сделали то же, что и вы: группировка по проекту или иногда по пространству имен). Но я обнаружил, что могу как-то обойти это с помощью возможностей поиска тестового проводника:
В моем случае я мог бы определить конкретные тесты, которые мне нужно выполнить, используя фильтр поиска в FullName (используйте раскрывающееся меню в окне поиска или введите FullName: "UnitTest" )
Это не то же самое, но это работает для меня