Как отлаживать код, отправленный на мой сервер сборки TFS?

У меня есть проект, который запускается, строится и проходит все модульные тесты локально, но чьи модульные тесты терпят неудачу на сервере сборки. Я использую .NET 4.5, TFS и VS 2012. В идеале я хотел бы пройти через код, который выполняется на сервере, чтобы я мог снова проверить неудачные модульные тесты.


person Ian    schedule 10.09.2013    source источник
comment
У вас есть удаленный доступ к рабочему столу сервера сборки?   -  person Vic Peters    schedule 10.09.2013
comment
Я хотел бы спросить, почему тесты не проходят на сервере сборки. Какова природа неудачи? Вы уверены, что сервер сборки создает точно такой же код, что и у вас локально? Например, выполните Get Latest в чистом рабочем пространстве. Используете ли вы те же версии всего программного обеспечения на сервере сборки, что и локально? Если вы достаточно отчаянны, вы можете настроить контроллер сборки и агент на своем локальном компьютере и попробовать поставить сборку в очередь на этот контроллер. Это позволит протестировать один и тот же источник с одной и той же сборкой в ​​​​другой среде.   -  person John Saunders    schedule 10.09.2013
comment
@JohnSaunders Я надеюсь понять, почему модульные тесты терпят неудачу при отладке. Несколько модульных тестов выдают значения за пределами допустимого диапазона на сервере сборки, но не локально, а один загадочным образом дает сбой из-за стандартной ошибки канала WCF, поскольку я еще не реализовал надлежащие пользовательские ошибки. MS Build такой же, MS тест и т.д. Несколько недель назад сервер не имел проблем.   -  person Ian    schedule 10.09.2013
comment
Меня беспокоит, что у вас есть модульные тесты, в которых используется WCF. Это то, что обычно называют интеграционными тестами, поскольку они включают интеграцию между модулями. Проходят ли все ваши тесты, которые не зависят от сети, базы данных или чего-либо внешнего?   -  person John Saunders    schedule 10.09.2013
comment
@JohnSaunders Вы абсолютно правы: модульные тесты, вызывающие методы WCF, являются интеграционными тестами, и иметь их — плохой тон. После некоторых копаний я обнаружил следующее: конфигурация сборки по умолчанию была изменена для вызова пользовательской макетной среды, данные которой не копировались, И один из модульных тестов теперь вызывает службу, которая не t развернут на сервере сборки. Короче говоря, ты был прав. Теперь, просто для моего собственного любопытства, знаете ли вы способ удаленного подключения к MSTest удаленно с целью отладки модульных тестов, которые вызываются сервером сборки? Спасибо.   -  person Ian    schedule 10.09.2013
comment
Нет, я не знаю способа. Если бы мне пришлось это сделать, я бы запустил модульные тесты в интерактивном режиме из Visual Studio, установленной на сервере сборки, и посмотрел, смогу ли я воспроизвести. Кроме того, я не знаю. Возможно, вам придется настроить тестовый агент, который работает в интерактивном режиме, или весь контроллер сборки для работы в интерактивном режиме, войдя в систему как вы, тогда, возможно, Debugger.Launch будет работать.   -  person John Saunders    schedule 10.09.2013


Ответы (1)


Вот один из способов,

Отладка непосредственно на сервере сборки

  1. Подключиться к серверу сборки вручную через RDP
  2. Перейдите туда, куда сборка загрузила исходный код.
  3. Откройте файл(ы) решения в Visual Studio и в обозревателе тестов щелкните правой кнопкой мыши > Отладка выбранных тестов.

И еще один способ, если настройка сети для удаленного отладчика VS не является большой проблемой,

Удаленная отладка тестов на сервере сборки

  1. Подключиться к серверу сборки вручную через RDP
  2. Запустите монитор удаленной отладки Visual Studio (необходимо загрузить/установить)
  3. На своем компьютере откройте решение и настройте тестовый проект для запуска с помощью средства запуска тестов (например, mstest) на удаленном компьютере (см. здесь скриншоты)
person makhdumi    schedule 13.09.2013