2009-10-30 15 views
8

Hemos creado pruebas de unidad Silverlight creando un proyecto de prueba de unidad vainilla simple. Eliminando todas las referencias, excepto la unidad, y luego añadiendo referencias a los ensamblados de SL que necesitamos (sistema, System.Core, ...). Para obtener más información, consulte la publicación de blog this. Podemos hacer esto, ya que nos estamos adhiriendo al patrón MVVM y tenemos casi ningún código en el código subyacente. No estamos probando la vista, sino la funcionalidad en todas las capas detrás (VM-M básicamente).Integrar pruebas de unidad de Silverlight en TFS compilación

Ahora, esto nos permite probar la lógica silverlight en nuestro equipo cada noche. Esto funciona bastante bien, hasta que comencemos a mezclar proyectos SL y proyectos .NET normales. Cuando seleccionamos todas las pruebas de unidad SL y las ejecutamos, pasan. Lo mismo ocurre con las pruebas de unidades .NET. Sin embargo, cuando los ejecutamos todos a la vez, uno o el otro conjunto falla completamente. El mensaje que estamos viendo indica: "Unit Test Adapter lanzó la excepción: no se pueden cargar uno o más de los tipos solicitados. Recupere la propiedad LoaderExceptions para obtener más información ...". Supongo que el problema es que estos dos conjuntos de pruebas usan ensambles de sistemas diferentes, pero no he podido identificar el problema.

¿Alguien ha intentado esto? Cheers, Phil

Respuesta

1

Supongo que existen problemas para tener múltiples bibliotecas de sistema, mscorlib, etc. en el dominio de la aplicación que probablemente confundan el entorno de ejecución de la prueba.

¿Se puede separar esto en varias ejecuciones de prueba para la compilación TFS, O tal vez crear un script msbuild con código para llamar a mstest.exe para uno de ellos y obtener resultados de esa manera?

+0

Gracias Jeff, lo resolvimos llamando a mstest.exe en nuestro script de compilación dos veces (una para pruebas de .NET, una para pruebas de Silverlight). – Phil

1

¿Qué le parece usar dos definiciones de compilación separadas? Ambos se pueden activar de la misma manera o al mismo tiempo. La única diferencia es que tiene referencias solo a los proyectos SL en uno y solo a los proyectos .NET en otro.

Si no desea hacer referencia a los proyectos desde la definición de construcción, podría crear un par de soluciones para usar con sus construcciones y hacer referencia solo a los proyectos SL en una solución y solo a los proyectos .Net en otra.

1

También puede usar un Proyecto de prueba de Silverlight (creado a partir de la plantilla de proyecto de Silverlight Toolkit) y usar this solution para ejecutar su prueba de Silverlight en su servidor de compilación TFS.

Cuestiones relacionadas