Как запустить тест в то же время, когда веб-проект отлаживается?

В некоторых решениях есть веб-проект ASP.NET/WCF и тестовый проект. Некоторые из тестов выполняются на веб-сервере разработки ASP.NET с помощью http://localhost:port/.... В VS2010, когда веб-проект ASP.NET/WCF отлаживался, тестовый бегун мог запускать тесты и, если бы были какие-то точки останова в веб-проекте, отладчик нарушил бы выполнение. Кажется, что это было отключено/удалено в VS2012.

Когда веб-проект ASP.NET/WCF отлаживается (запускается нажатием F5 или через процесс присоединения), оба подменю TEST- > Run и TEST- > Debug отключены. В VS2010 только Test- > Debug подменю были отключены, в то время как подменю Test- > Run все еще включено. Мы используем этот способ, чтобы легко отлаживать службы в рамках веб-проекта. Любой способ вернуть это поведение или обходное решение?

Отладка при запуске на сервере разработки ASP.NET, похоже, не применима к VS2012 или, по крайней мере, я не могу заставить ее работать.

Ответы

Ответ 1

В итоге я написал быстрый аддон. Оказывается, что, как и VS2012, тестировщик VS2012 может также запускать тесты, когда веб-проект отлаживается. Просто параметры меню отключены.

Ответ 2

В VS2013 ситуация такая же: параметры запуска/отладки тестов выделены серым цветом во время запуска/отладки проекта. Это позор особенно для проектов, таких как веб-API, где тесты для вызова API через HTTP (в отличие от создания экземпляра класса Controller и обхода любого сетевого трафика) очень полезны, поскольку они ближе к тому, что конечные пользователи API будут испытывать.

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

Ответ 3

Если у вас есть решение с приложениями WCF и их вызовами, вы можете отлаживать приложения, используя тесты, вызывая Debug All Tests или Debug Selected Tests без предыдущей отладки (F5).

Настройте решение для нескольких проектов запуска с помощью None, установленным во всех действиях, и настройте приложения WCF на действие запуска. Не открывайте страницу. Ждите запроса. В этой конфигурации веб-сервер разработки запускается, если вы выберете "Отладка всех тестов" или "Отладка выбранных тестов".

Ответ 4

Ниже приведено обходное решение для отладки одного unit test вместе с веб-сервером. Он полагается на Отладка нескольких процессов (исключая MSVS Express):

  • Запустите веб-сервер, обратите внимание на его идентификатор процесса.
  • Поместите контрольную точку на первой строке в тесте
  • Запустите Отладка Unit Test, дождитесь ее остановки в точке останова.
  • Отладка → Приложить к процессу, введите идентификатор процесса веб-сервера

Альтернативный способ для целых проектов (включая тест, который я предполагаю):

Щелкните правой кнопкой мыши на Solution → Properties → Multiple Startup Projects. Определите, а затем просто F5 (Debug).