Visual Studio 2008 "случайно" зависает при тестовом запуске - PullRequest
17 голосов
/ 09 сентября 2008

Мы используем VS 2008 Team System с автоматизированным набором тестов, и при запуске тестов тестовый хост блокируется «случайным образом». Мне действительно нужно убить процесс VSTestHost и заново запустить тесты, чтобы что-то произошло, в противном случае все тесты находятся в состоянии «ожидания».

Кто-нибудь испытывал подобное поведение и знал об исправлении? У нас есть 3 разработчика, которые ведут себя одинаково.

Ответы [ 3 ]

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

Это может быть связано с неясной ошибкой, которая приводит к зависанию модульных тестов, если имя компьютера не UPPERCASE. Сумасшедший, я знаю - но у меня была эта проблема, и исправление сработало для меня.

Сообщение об ошибке в MS Connect
Обходной путь на MS Connect
Статья в блоге TFS об этой проблеме
HowTo отредактируйте реестр, чтобы изменить имя вашего компьютера

Самый простой подход - настроить реестр. Вам нужно отредактировать две клавиши:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName

Измените значение ComputerName на верхний регистр обеих клавиш и перезапустите. Тесты тогда волшебным образом работают.

2 голосов
/ 09 сентября 2008

Я бы попробовал запустить тесты из командной строки, используя MSTest.exe . Это может помочь изолировать проблему в Visual Studio и, по крайней мере, дать вам какой-нибудь метод успешного выполнения тестов.

2 голосов
/ 09 сентября 2008

Когда вы говорите «блокировка», вы имеете в виду, что VS фактически завис или тесты не запускаются?

Самый простой способ отследить происходящее, это посмотреть на дамп зависшего процесса. Если вы работаете в Vista, просто щелкните правой кнопкой мыши по процессу и выберите создание дампа памяти. Если вы работаете в Windows XP и у вас не установлены средства отладки для Windows , вы можете получить дамп памяти с помощью ntsd.exe. Вам потребуется идентификатор процесса, который можно получить из диспетчера задач, добавив столбец PID на вкладку «Процессы».

После этого выполните следующие команды:

ntsd -p <PID>
.dump C:\mydump.dmp

Затем вы можете либо проверить этот дамп, используя WinDBG и SOS , либо, если вы можете опубликовать дамп где-нибудь, я с радостью посмотрю его.

В любом случае, вы, вероятно, захотите взять две свалки с интервалом около минуты. Таким образом, если вы делаете такие вещи, как! Runaway, вы можете увидеть, какие потоки работают, что поможет вам отследить, почему он зависает.

Еще один вопрос - вы на VS2008 SP1?

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