VS 2010 Test Runner error «Процесс агента был остановлен во время выполнения теста». - PullRequest
97 голосов
/ 11 мая 2010

В Visual Studio 2010 у меня есть ряд модульных тестов. Когда я запускаю несколько тестов одновременно, используя списки тестов, я иногда выявляю следующую ошибку для одного или нескольких тестов:

Процесс агента был остановлен, пока тест был запущен.

Это никогда не повторяет тот же тест, и если я попытаюсь запустить тест снова, он пройдет успешно.

Я нашел этот отчет об ошибке в Connect , который, кажется, та же самая проблема, но не предлагает решения.

Кто-нибудь еще видел такое поведение? Как мне этого избежать?

Редактировать

Я все еще испытываю эту ошибку, как и многие мои коллеги, работающие с той же программно-аппаратной настройкой. Я оценил ответы до сих пор, но они не решают проблему. Я начинаю вознаграждение за решение этой проблемы.

Ответы [ 18 ]

1 голос
/ 02 марта 2011

У меня случалось такое по странному случаю, и виновник почти всегда оказывался замешанным.

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

При ближайшем рассмотрении оказалось, что, хотя тесты были перечислены как пройденные на блоках разработчика, были выброшены исключения. Исключения создавались в отдельном потоке, который не воспринимался как ошибка.

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

Надеюсь, это кому-нибудь поможет.

1 голос
/ 15 февраля 2011

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

После помещения кода финализатора в try-catch, который поглощает исключение, проблема исчезла. Я не рекомендую глотать подобные исключения, поэтому было бы разумно выяснить, почему это происходит в первую очередь.

0 голосов
/ 03 декабря 2013

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

Если все ваши тесты отменяются, как описано в OP, причиной может быть неправильная конфигурация проекта. В моем случае целевой фреймворк был установлен на .NET Framework 3.5. Установка более высокой версии на странице свойств проекта (вкладка Приложение ) позволила решить проблему.

0 голосов
/ 15 февраля 2013

Проблема также может быть вызвана Исключением или переполнением стека в конструкторе TestClass.

0 голосов
/ 04 января 2013

Я столкнулся с подобной проблемой, когда в TestInitialize происходит сбой теста, а также выполняется код из ddl из другого моего проекта. Я получаю сообщение об ошибке, как описано выше, и если я пытаюсь отладить тест, тест просто прерывается без каких-либо исключений.

Я подозреваю, что проблема может заключаться в том, что dll из моего другого проекта взяты из проекта Visual Studio 2012, и я запускаю свои тесты в проекте VS2010, и / или возможно, что версии DLL UnitTestFramwork из 2 проектов не совпадают .

0 голосов
/ 29 мая 2010

В моем случае у меня было несколько юнит-тестов для WCF-сервиса. Эта служба WCF запускалась 2 таймера.
Эти таймеры вызывали побочные эффекты.
-> Я отключаю эти таймеры по умолчанию, и все в порядке!

Кстати: я использую WCFMock для подделки службы WCF, поэтому у меня есть "настоящие" модульные тесты вокруг моей службы WCF

0 голосов
/ 01 мая 2019

Мне удалось определить причину проблемы, просмотрев записи журнала Windows > Приложение в средстве просмотра событий Windows . Ищите записи в момент испытания бомбардировки. У меня была запись Ошибка , аналогичная приведенной ниже:

QTAgent32_40.exe, PID 10432, Thread 2) AgentProcess:CurrentDomain_UnhandledException: IsTerminating : System.NullReferenceException: Object reference not set to an instance of an object.
   at XXX.YYY.ZZZ.cs:line 660
   at XXX.YYY.AAA.Finalize() in C:\JenkinsSlave\workspace\XXX.YYY.AAA.cs:line 180

Это действительно было исключение нулевой ссылки в методе, вызванном из финализатора класса.

0 голосов
/ 02 декабря 2011

Эта ошибка также была вызвана Финализатором для меня.
Финализатор на самом деле вызывал некоторый код БД, который не был отключен. Мне потребовалось некоторое время, чтобы найти его, так как это был не тот класс, который я написал, и ссылка на него была закопана довольно глубоко.

...