unit testing - unit - ¿Integrando Hudson con MS Test?
unit test.net core (5)
¿Es posible 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, advertencias de FxCop y 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 la prueba MS. ¿Alguien sabe si los archivos TRX generados por MSTest.exe
se pueden transformar al formato de resultados JUnit o NUnit (porque Hudson los admite) o si hay alguna otra forma de integrar las pruebas de MS Test Unit con Hudson?
Hudson tiene un Plot Plugin que se puede usar para trazar 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
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 marcará correctamente como " falló "si alguna de las pruebas falla.
<Exec Command=""C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE/mstest.exe" /testcontainer:"MyAssembly.dll"" />
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.
He tenido la intención de escribir esto como una guía y desarrollar un plugin, pero no me he acostumbrado. 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:
Ejecute 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
Luego marque la casilla "Publicar informe de resultados de pruebas de NUnit" y para "XML de informes de pruebas" ingrese
TestResults/*.xml
Hay un XSLT en C: / MsBuildNunit, así como msxsl.exe que proviene de Microsoft.
Puede descargar MSBuild-to-NUnit.xslt desde aquí y obtener msxsl.exe desde microsoft aquí o simplemente puede obtener la copia comprimida de mi carpeta MsBuildNunit que contiene el xslt y el exe aquí
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.
Editar: Probé el nuevo complemento MSTest y actualmente no admite el análisis de múltiples archivos TRX, solo 1, por lo que actualmente esta es su única solución si es como nosotros y tiene varios ensambles de prueba que debe ejecutar a través de MSTest.
He podido usar 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, el siguiente es mi paso de compilación personalizado:
"%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
Tenga en cuenta que el "archivo de resultados" es relativo al espacio de trabajo del trabajo. Por lo tanto, el archivo de resultados del complemento MSTest para analizar es:
TestResults/HudsonJobTestResults.trx
¡Y eso es!