Причины, по которым некоторые из моих модульных тестов SmartDevice не проходят на одной машине, а не на другой? - PullRequest
0 голосов
/ 02 февраля 2011

У меня есть несколько модульных тестов, которые отлично работают на моей машине разработчика на обоих эмуляторах Win Mobile 5 и 6. (Professional).

При запуске на сервере сборки некоторые из модульных тестов не выполняются, но только наЭмулятор Win Mobile 6 (все тесты проходят на эмуляторе Win Mobile 5).

Неудачные тесты имеют следующие ошибки:

Test method XXXXXMobile.Test.ManifestTests.TestCrewManifest threw exception: System.MissingMethodException: Could not load type 'XXXXXMobile.Controllers.ManifestController' from assembly 'XXXXXMobile.Controllers, Version=1.0.4049.32739, Culture=neutral, PublicKeyToken=null'..

и

Test method XXXXXMobile.Test.PermissionTests.TestMenuBarPermissions threw exception: System.MissingMethodException: Method not found: op_Implicit System.Object..

Командная строка, которая запускает тесты:

C:\hudson\jobs\XXXXX Mobile (WinMobile 6 Emulator Tests)\workspace>e:\VS9\Common
7\IDE\MSTest.exe /runconfig:YYYY\WinMobile6Emulator.testrunConfig /testcontainer
:YYYY\XXXXXMobile.Test\bin\Release\XXXXXMobile.Test.dll

Файл testrunconfig неинтересный.Я думаю, что единственными вещами, которые я изменил по умолчанию, были: - Включить развертывание: проверено - Тип хоста: Smart Device - Платформа: Windows Mobile 6 Professional SDK - Устройство: Windows Mobile 6 Professional Emulator

Каталог, содержащий тестrun container dll также содержит dll «Контроллеры», упомянутый в первой ошибке выше.

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

Любые предложения с благодарностью получены.

1 Ответ

0 голосов
/ 02 февраля 2011

И, как это часто бывает, ответы появляются вскоре после задания вопроса.

В этом случае проблема заключалась в том, что на эмуляторе на сервере сборки не было установлено .Net 3.5.Запуск приложения из VS установит .Net 3.5, но запуск модульных тестов - нет.На компьютере разработчика я уже запустил приложение и затем сохранил состояние (чтобы не приходилось переустанавливать .Net 3.5 при каждом запуске).Это не было сделано на сервере сборки.

...