it-roy-ru.com

Возникла исключительная ситуация при вызове executor 'executor: // mstestadapter/v1': ссылка на объект не установлена ​​для экземпляра объекта

Мы используем Visual Studio 2012 и Team Foundation Server 2010 в нашем проекте. Поскольку мы используем Microsoft Fakes, мы не могли использовать запущенную функциональность Test нашей Team Build 2010, я создал операцию сборки, которая вызывает VSTest.Console.exe, пропуская тестовые сборки. Этот подход хорошо работает для нас. Однако после недавней регистрации мы получаем следующую ошибку при выполнении Vstest.console.exe

Ошибка: Возникла исключительная ситуация при вызове executor 'executor: // mstestadapter/v1': ссылка на объект не установлена ​​для экземпляра объекта.

Я скопировал бинарные файлы на свой локальный компьютер и смог снова получить ошибку. Интересно, что перед регистрацией мы запускаем сборку dev, которая запускает тот же файл vstest.console.exe с теми же параметрами и работает правильно. У меня есть две папки на моей машине, для одной вызов работает нормально, а для другой - нет. Скомпилированные сборки выглядят одинакового размера, и нет особых различий.

Я пытался использовать Process Monitor, но не смог найти ничего очевидного, кроме того, что процесс возвращается с кодом завершения 1. Кто-нибудь знает много об этой ошибке? Есть ли способ узнать больше информации из моего теста?

С Уважением,

Хамид

18
Hamid Shahid

Мы добрались до сути проблемы. Мы используем Entity Framework 5.0, и у нас также есть ситуация, когда некоторые из наших тестовых сборок нацелены на .Net 4.0, а некоторые на .Net 4.5. 

Когда мы пытаемся запустить тесты таким образом, чтобы сборки, нацеленные на разные версии .Net Framework и использующие Entity Framework 5.0, выполнялись в одном и том же процессе Test (vstest.console.exe), мы получаем эту ошибку. 

Я думаю, что это связано с тем, как Entity Framework 5.0 поставляется с двумя версиями (net40 и net45). Как только одна версия библиотеки загружается в процессе, другая версия не может быть загружена, и это вызвало ошибку.

5
Hamid Shahid

Вот что сработало для меня: В Visual Studio Test -> Test Settings -> Default Processor Architecture -> X64.

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

3
AnirbanBm

У меня та же ошибка, указанная в теме, когда в AssemblyInfo проекта указано AssemblyAttribute:

[Assembly: AssemblyCulture("en")]

Если это attribute присутствует, запуск модульных тестов завершается неудачей . Если я удаляю эту строку кода или удаляю язык en, запуск модульных тестов завершается успешно.

2
fabio bussu

Возникла исключительная ситуация при вызове executor 'executor: // mstestadapter/v2'

В моей папке BuildAgents было несколько TestAdapter и TestFramework, удаление версий v1.1.11 устранило проблему:

 enter image description here

1
Jeremy Thompson

У меня было такое же сообщение об ошибке только сейчас с Visual Studio 2017 с использованием нового MSTest.Framework и MSTest.TestAdapter (чтобы можно было использовать Live Unit Testing). Оказалось, что я использовал несколько версий этих пакетов в своем решении. Объединение их до последней версии решило проблему.

1
Emiel Koning

Удаление app.config и packages.config, если он существует, и переустановка Entity Framework с помощью пакетов nuGet работает для меня. 

0
Gabriel Simas

Я попробовал все в Интернете, чтобы решить это исключение. Наконец, я решил эту проблему, установив обновление v4 Visual Studio 2013 (которое я сейчас использую). Надеюсь, поможет!

0
Mauro Bilotti