Исключение произошло при вызове исполнителя исполнителя://mstestadapter/v1 ': ссылка на объект не установлена в экземпляр объекта
Мы используем Visual Studio 2012 и Team Foundation Server 2010 в нашем проекте. Поскольку мы используем Microsoft Fakes, мы могли бы не использовать начатые функции тестирования нашей Team Build 2010, я создал операцию сборки, которая вызывает VSTest.Console.exe, передавая тестовые сборки. Этот подход хорошо работает для нас. Однако после недавней регистрации мы получаем следующую ошибку при выполнении Vstest.console.exe
Ошибка: при вызове исполнителя исполнителя возникло исключение://mstestadapter/v1 ': ссылка на объект не установлена в экземпляр объекта.
Я скопировал двоичные файлы на свой локальный компьютер и смог снова получить ошибку. Интересно, что мы запускаем сборку dev перед регистрацией, которая запускает тот же vstest.console.exe с теми же параметрами и работает правильно. У меня есть две папки на моей машине, для одного звонок работает нормально, а для других - нет. Скомпилированные сборки выглядят одинакового размера, и нет никаких оснований полагать.
Я попытался использовать Process Monitor, но не смог найти ничего очевидного, кроме того, что процесс возвращается с кодом выхода 1. Кто-нибудь знает об этой ошибке? Есть ли способ узнать больше информации из моего тестового прогона?
Привет,
Хамид
Ответы
Ответ 1
Мы дошли до сути проблемы. Мы используем Entity Framework 5.0, и у нас также есть ситуация, когда некоторые из наших тестовых сборок нацелены на .Net 4.0, а некоторые - на .Net 4.5.
Когда мы пытаемся запустить тесты, чтобы сборки, предназначенные для разных версий .Net-структуры и использующие Entity Framework 5.0, выполнялись в том же процессе Test (vstest.console.exe), мы получаем эту ошибку.
Я думаю, что это связано с тем, как Entity Framework 5.0 поставляется с двумя версиями (net40 и net45). Когда в процессе загружается одна версия библиотеки, другая версия не может быть загружена, и это вызвало ошибку.
Ответ 2
Я имею ту же ошибку, указанную в теме, когда в AssemblyInfo
проекта указан AssemblyAttribute
:
[assembly: AssemblyCulture("en")]
Если этот attribute
присутствует, прогон модульных тестов завершается с ошибкой.
Если я удалю эту строку кода или я удалю язык en
, запуск блока будет успешным.
Ответ 3
У меня было такое же сообщение об ошибке только с Visual Studio 2017, используя новый MSTest.Framework и MSTest.TestAdapter (чтобы иметь возможность для использования тестирования Live Unit). Оказалось, что я использовал несколько вариантов этих пакетов в своем решении. Консолидация их до последней версии решила проблему.
Ответ 4
Исключение произошло при вызове исполнителя исполнителя://mstestadapter/v2 '
У меня было несколько TestAdapter и TestFramework в моей папке BuildAgents, удалив версии v1.1.11, исправленная проблема:
![введите описание изображения здесь]()
Ответ 5
Это то, что сработало для меня:
В Visual Studio, Test → Test Settings → Архитектура процессора по умолчанию → X64.
Хотя это может не решить все проблемы, надеюсь, что это поможет некоторым из вас там.
Ответ 6
Я попробовал все в Интернете, чтобы решить это исключение. Наконец, я решил эту проблему, установив обновление v4 для Visual Studio 2013 (которое я использую в настоящее время). Надеюсь, это поможет!
Ответ 7
Удаление app.config и packages.config, если существует, и переустановка инфраструктуры Entity через пакеты nuGet работает для меня.