UnitTest продолжает зависать в Visual Studio 2010

#visual-studio-2010 #unit-testing

#visual-studio-2010 #модульное тестирование

Вопрос:

Недавно я столкнулся с проблемами при одновременном запуске всех своих модульных тестов.

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

Это происходит:

  1. «Запустите все тесты в решении»
  2. Первые тесты анализируются без проблем (хотя и медленнее, чем обычно)
  3. В какой-то момент он застревает. Ничего не завершается сбоем, никаких исключений, VS просто прекращает выполнение ожидающих тестов.
  4. При остановке тестового запуска он снова зависает, и мне нужно перезапустить VS, чтобы прервать тестовый запуск.

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

Он всегда останавливает одно и то же место, при удалении некоторых тестов из запуска он останавливает новое место (все еще фактически без ввода каких-либо оставшихся тестов).

Я понятия не имею, что является причиной этого. Но, похоже, у меня проблема с настройкой VS, а не с ошибкой кода.

Есть предложения? Изменяет ли мастер производительности какие-либо настройки, которые могли повлиять на способ выполнения теста?

Сведения о системе: 64-разрядная версия Windows 7 Ultimate, Visual Studio 10 Premium

Ответ №1:

Это звучит как проблема параллелизма. Кажется, что один тест изменяет testenvironment таким образом, что другой тест переходит в тупик. При удалении некоторых тестов порядок выполнения тестов изменяется, а некоторые другие тесты застревают.

Итак, я бы поискал проблему параллелизма, касающуюся вашей тестовой среды / внешних зависимостей.

Комментарии:

1. мне кажется, что это ошибка / проблема параллелизма в devenv.exe (проблема с изоляцией процесса отсутствует) — основной поток зависает в ожидании блокировки (я подозреваю, связанной с отображением окна результатов тестирования), и ide умирает.

Ответ №2:

Я не могу толком объяснить, почему это работает, но это решило проблему!

Я изменил файл ‘.csproj’ на более раннюю версию в одном из проектов, который был в «контакте» с мастером производительности, и теперь мои тесты работают.

ТАКЖЕ имейте в виду, что Мастер повышения производительности в некоторых случаях может изменить конфигурации решения из режима ‘DEBUG’ в режим ‘RELEASE’. Это было не так для меня, но стало проблемой для некоторых моих коллег.