Невозможно установить свойство TestContext - PullRequest
22 голосов
/ 17 июня 2009

У меня тестовый модуль visual studio 2008, и я получаю следующую ошибку во время выполнения:

Unable to set TestContext property for the class JMPS.PlannerSuite.DataServices.MyUnitTest.  Error:  System.ArgumentException:  Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext'

Я читал, что VS 2008 неправильно обновляет ссылки на UnitTestFramework при конвертации проектов 2005 года. Мой модульный тест был создан в 2008 году, но он унаследован от базового класса, созданного в VS 2005. Откуда моя проблема? Нужно ли перестраивать мой базовый класс в 2008 году? Я бы предпочел не делать этого, так как это повлияет на другие проекты.

В других производных модульных тестах, созданных в 2005 году, все, что нам нужно было сделать, это закомментировать свойство TestContext в производном модульном тесте. Я попробовал это в модульном тесте VS 2008 без удачи. Я также попытался «создать» новое свойство TestContext, которое выдает мне другую ошибку времени выполнения.

Есть идеи?

Ответы [ 3 ]

23 голосов
/ 16 мая 2013

У меня была такая же проблема в Visual Studio 2012, когда я обновил старый проект (я думаю, 2005).

Чтобы удалить ссылку на Microsoft.VisualStudio.QualityTools.UnitTestFramework, щелкните ее правой кнопкой мыши в обозревателе решений и удалите его.

Чтобы добавить правильный:

  1. Добавить новую ссылку
  2. Расширения, найдите Microsoft.VisualStudio.QualityTools.UnitTestFramework, вероятно, есть несколько
  3. Наведите указатель мыши, чтобы отобразить путь, выберите путь в ../IDE/PublicAssemblies
  4. Clean
  5. Перестройка
  6. Тесты Rerun
2 голосов
/ 13 апреля 2012

Я выкладываю это здесь в надежде, что это поможет кому-то модульному тестированию проекта смарт-устройства. Я получил очень похожую ошибку, когда впервые попытался запустить модульный тест для метода в проекте смарт-устройства, над которым я работал в Visual Studio 2008:

Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext'

Погуглив, ошибка вернула результаты, свидетельствующие о том, что она была вызвана обновлением тестового проекта с формата Visual Studio 2005 до 2008, и что ссылка на UnitTestFramework.dll по-прежнему была для старой версии (8.0) и требовала обновления. Это не относится ко мне, так как я не обновил свой тестовый проект с VS2005. Поэтому я продолжил поиски.

После нескольких часов безуспешного поиска других причин ошибки я наткнулся на следующие ссылки в проекте смарт-устройства:

  • Microsoft.WindowsMobile.dll
  • Microsoft.WindowsMobile.Status.dll

Visual Studio получал эти ссылки из следующей папки:

C:\Program Files\Windows Mobile 5.0 SDK R2\Managed Libraries

Однако целевой платформой проекта для интеллектуальных устройств был Windows Mobile 6 Professional SDK . Я не замечал этого раньше, так как изначально не создавал проект смарт-устройства. Поэтому я удалил ссылки на две библиотеки DLL и прочитал их из следующей папки:

C:\Program Files\Windows Mobile 6 SDK\Managed Libraries

После перестройки проекта смарт-устройства запуск метода тестирования завершился успешно.

0 голосов
/ 09 апреля 2010

Я столкнулся с той же проблемой. Оказалось, что один из моих проектов ссылался на сборки 8.0, а другой ссылался на 9.0. Решение скомпилировано, но я получил исключение во время выполнения.

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