VSTestHost.exe перестал работать - не может запустить модульные тесты

Среда модульного тестирования Microsoft внезапно забастовала.

Когда я пытаюсь запустить тесты в VS2008, я получаю диалоговое окно с сообщением "VSTestHost.exe перестал работать".

У меня Visual Studio Team System 2008 (версия 9.0.30729.1 SP), работающая в Vista со всеми примененными обновлениями.

В "Отчётах о проблемах и решениях" предлагается, чтобы я "обновился до последней розничной версии Visual Studio Team Edition для тестировщиков программного обеспечения", что неправильно.

Я попытался перезагрузиться.
Я пробовал "devenv /resetuserdata"

Это не имеет значения.

Я хотел бы вернуться к MbUnit на основе этой ерунды, но это не мой выбор.
Любые предложения о том, как это исправить?

4 ответа

Решение

Обычно это происходит из-за неправильного кода, такого как бесконечный цикл или циклическая ссылка.

У меня возникла та же проблема, и я понял, что мой код испортился, и тестовая среда просто защищала себя от моего кода, закрывая себя.

Ключевым для меня было то, что то же самое произошло с двумя разными средами тестирования. Так что это должен быть мой код.

Важно отметить, что хотя сообщение об ошибке, объясняющее, что VSTestHost.exe перестал работать, не было наглядным. В результатах теста есть ссылка с надписью "Тестовый прогон завершен" (или в вашем случае он сказал бы "Тестовый прогон не пройден"), при щелчке по нему вы увидите точное сообщение об ошибке, которое вызвало тестовый хост ошибка (исключение переполнения стека).

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

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

Уроки, которые можно извлечь из этого:
1: "выбор" не нарушен. Я был слишком быстр, чтобы обвинить структуру, из-за ее плохой репутации.

2: Но у этого действительно было патологически общее и полностью вводящее в заблуждение сообщение об ошибке.

В тех случаях, когда сообщение об ошибке является настолько плохим, хороший метод отладки состоит в том, чтобы попытаться выяснить, что делает, а что не вызывает ошибку. В моем случае прорыв произошел, как только я заметил, что это не "тестовый прогон", который провалился, это были только прогоны, содержащие тесты базы данных Sql - тест объекта домена и фиктивного репозитория мог выполняться просто отлично, поэтому пришлось быть что-то о коде, который он выполнял. И что отладчик вступит в тесты. Я предположил от ужасных ошибок, что это даже не зашло так далеко.

Вы пытались запустить ремонт в Visual Studio или даже сбросить заводские настройки?

Чтобы восстановить заводские настройки, запустите devenv /ResetSettings из окна запуска.

Другие вопросы по тегам