¿Razones por las cuales algunas de mis pruebas unitarias de SmartDevice fallan en una máquina y no en otra?

StackOverflow https://stackoverflow.com/questions/4873244

Pregunta

Tengo algunas pruebas unitarias que funcionan bien en mi máquina Dev en los emuladores Win Mobile 5 y 6 (profesionales).

Ejecutando en un servidor de compilación algunas de las pruebas unitarias fallan, pero solo en el emulador Win Mobile 6 (todas las pruebas pasan en el emulador Win Mobile 5).

Las pruebas que fallan tienen errores como:

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'..

y

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

La línea de comando que configura las pruebas es:

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

El archivo testRunConfig no es emocionante. Creo que las únicas cosas que cambié del valor predeterminado fueron: - Habilitar implementación: verificación - Tipo de host: Dispositivo inteligente - Plataforma: Windows Mobile 6 Professional SDK - Dispositivo: Windows Mobile 6 Professional Emulador

El directorio que contiene el contenedor de ejecución de prueba DLL también contiene la DLL de controladores que se menciona en el primer error anterior.

Habiendo golpeado mi cabeza contra esto por un tiempo, estoy perdido por qué solo algunas pruebas están fallando y solo en una máquina y un emulador. No he podido recibir más un mensaje de error útil al activar el registro de diagnóstico en mstest.exe y vstesthost.exe.

Cualquier sugerencia recibida con agradecimiento.

¿Fue útil?

Solución

Y como suele suceder, las respuestas aparecen poco después de hacer la pregunta.

En este caso, el problema era que el emulador en el servidor de compilación no tenía .NET 3.5 instalado. Ejecutar la aplicación desde VS instalará .NET 3.5, pero ejecutar las pruebas unitarias no. En la máquina Dev ya había ejecutado la aplicación y luego guardé el estado (para guardar tener que reinstalar .NET 3.5 cada ejecución). Esto no se había hecho en el servidor de compilación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top