Я выкладываю это здесь в надежде, что это поможет кому-то модульному тестированию проекта смарт-устройства. Я получил очень похожую ошибку, когда впервые попытался запустить модульный тест для метода в проекте смарт-устройства, над которым я работал в 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
После перестройки проекта смарт-устройства запуск метода тестирования завершился успешно.