2008-12-09 22 views
19

¿Es posible integrar Hudson con MS Test?¿Integrar Hudson con MS Test?

Estoy configurando un servidor de CI más pequeño en mi máquina de desarrollo con Hudson en este momento, solo para poder tener algunas estadísticas (es decir, FxCop y advertencias del compilador). Por supuesto, también sería bueno si solo pudiera ejecutar mis pruebas de unidad y presentar su salida.

Hasta ahora, he agregado la siguiente tarea por lotes a Hudson, lo que hace que se ejecuten las pruebas correctamente.

"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:Tests\bin\Debug\Tests.dll 

Sin embargo, hasta donde yo sé, Hudson aún no es compatible con el análisis de los resultados de MS Test. ¿Alguien sabe si los archivos TRX generados por MSTest.exe se pueden transformar al formato de resultado JUnit o NUnit (porque Hudson los soporta), o si hay alguna otra manera de integrar las pruebas de MS Test Unit con Hudson?

Respuesta

16

Hudson tiene un nuevo complemento para MSTest. Solo especifique la ubicación del archivo .trx y el trabajo está hecho para usted. No me sorprendería si el complemento utilizara la solución de Allen.

+0

nice, tendré que verificarlo para ver si agrega alguna funcionalidad que mi solución no tiene . –

+0

Wow, ¿cómo podría extrañar que esto sea lanzado? Creo que lo probaré mañana. – hangy

+0

Creo que este complemento cubre mis necesidades prácticamente por ahora. Si alguien necesita algo más sofisticado, tú, dale una oportunidad a la sugerencia de Allen. – hangy

0

Hudson tiene un Plot Plugin que se puede utilizar para representar datos genéricos. No es el complemento más fácil de configurar y usar si tiene múltiples puntos de datos por gráfico, pero si puede analizar la salida de MS Test y generar archivos de entrada para el complemento, al menos puede trazar las tendencias de falla, éxito y pruebas totales

+0

Gracias por la pista. Esto suena como un último recurso: podría ser más fácil transformar .TRX (XML) al formato JUnit/NUnit usando XSLT más o menos. – hangy

0

No he podido utilizar Hudson para realizar análisis de los resultados de MS Test con fines históricos, pero al menos he podido descubrir que si usa MSBuild y la tarea Exec, la compilación de Hudson se realizará correctamente. ser marcado como "fallido" si cualquiera de las pruebas falla.

<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe" /testcontainer:"MyAssembly.dll"" /> 
17

He tenido la intención de escribir esto como una guía y desarrollar un plugin, pero no he tenido acceso a él. Sé que esta pregunta es antigua, pero estoy SEGURO de que alguien más quiere lo mismo, así que aquí está.

En la configuración del proyecto en Hudson:

ejecutar el comando por lotes de Windows


SET MSTest="C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" 
SET XSLParser="C:\MsBuildNunit\msxsl.exe" 

SET TestDLL=path-to-your-test-projects.dll 
SET TestOutFILE=TestResults\some-unique-filename.trx 
SET TransformedOutputFile=%TestOutFILE:.trx=%.xml 
SET XSLFile=c:\MsBuildNunit\MSBuild-to-NUnit.xslt 

MKDIR TestResults 

%MSTest% "/testcontainer:%TestDLL%" /nologo /resultsfile:%TestOutFILE% 

%XSLParser% %TestOutFILE% %XSLFile% -o %TransformedOutputFile% 

SET ERRORLEVEL=0 

A continuación, marque la casilla "Publicar NUnit prueba de informe de resultados" y por "XMLs Protocolo de pruebas" entran

TestResults/*.xml

Hay un XSLT en C: \ MsBuildNunit, así como msxsl.exe que viene de Microsoft.

Puede descargar el MSBuild-a-NUnit.xslt de here y obtener msxsl.exe de Microsoft here o simplemente puede obtener la copia cremallera de mi carpeta MsBuildNunit que contiene el XSLT y exe here

Cuando se ejecuta, llama a MSTest.exe, que ejecuta las pruebas y genera el formato en formato microsoft trx (xml). Luego llama a msxsl.exe con xslt y trx y lo traduce a nunits xml. Al final de la compilación, Hudson lo recoge como cualquier otro resultado de la prueba Nunit y está listo para continuar.

Editado para agregar: Olvidé mencionar, con este xslt obtenemos resultados completos de la prueba.Tenemos varios proyectos de prueba y múltiples dll y obtenemos excelentes comentarios con la capacidad de hacer un gráfico de tendencia, ver las pruebas por nombre, ver los estados de las pruebas, y si tiene errores, recibimos el mensaje de error junto con el seguimiento de la pila. Básicamente, casi todo lo que obtendrías con Nunit.

Editar (nuevamente): ¡Acabo de agregar la duración de la prueba en la transformación para que ahora aparezca en Hudson! Parece que funciona bien para nuestras pruebas.

Edit: trató el nuevo plugin MSTest y actualmente no es compatible con el análisis de varios archivos de TRX, a 1, por lo que actualmente esta es su única solución si usted es como nosotros y tienen múltiples montajes de prueba que tienen que correr a través de MSTest .

+0

Esto se ve genial, gracias! Puedo intentarlo mañana, dependiendo de lo que este nuevo plugin de MSTest tenga para ofrecer. – hangy

+0

Acabo de enterarme de que el complemento MSTest no admite el análisis de varios archivos trx, por lo que es algo que esta solución tiene sobre él. –

+1

El plugin MSTest de Jenkins es compatible con múltiples archivos TRX, ahora: https://issues.jenkins-ci.org/browse/JENKINS-8520 – exclsr

2

He podido utilizar una variación de la línea de comandos de "Hangy" y el complemento MSTest para ejecutar, analizar y publicar con éxito los casos de prueba. El mayor cambio que realicé fue especificar el archivo de salida para mstest.exe y, por último, el complemento MSTest para consumir ese archivo (no se permiten comodines ... debe ser un nombre de archivo real). Por ejemplo, la siguiente es mi costumbre paso de generación:

"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:MyProject1.Test/bin/Debug/MyProject1.Test.dll /testcontainer: MyProject2.Test/bin/Debug/MyProject2.Test.dll /resultsfile:TestResults\HudsonJobTestResults.trx 

salida 0

en cuenta que el "archivo de resultados" es relativo al espacio de trabajo del empleo. Por lo tanto, el archivo de resultados del complemento MSTest para analizar es:

TestResults\HudsonJobTestResults.trx 

Y eso es todo!

Cuestiones relacionadas