Si ya tenemos nuestra solucion de VisualStudio en Jenkins, el siguiente paso es configurar los reportes de CObertura y Metricas
Para ello necesitamos las siguientes herramientas:
-
OpenToCoberturaConverter. Una vez descargado el paquete Nuget, procedemos a cambiar la extension del archivo de nupkg as zip. Al descomprimir el archivo zip, podremos encontrar un ejecutable en la carpeta Tools. Ese es el ejecutable que necesitamos.
-
Metics Power Tools. EN mi caso, la version para VisualStudio 2015.
Nota: Todas las herramientas deberas ser descompresas en un directorio (digamos “C:\JenkinsTools"), cada una con su respectiva carpeta
Tambien vamos a necesitar algunos plugins de Jenkins:
Ahora procedemos a configurar el Plugin de CisuaStudio Code Metrics a través del menú: Administrar Jenkins -> Global Tool Configuration Buscamos el bloque perteneciente al plugin y lo configuramos tal cual se muestra en la captura:
Ya tenemos listo los plugins y las herramientas necesarias.
**NOTA: En mi caso, como no tengo instalado VisualStudio en la maquina de Deployment, instale _VisualStudio Code Metrics_ pero tambien tube que COPIAR todo el contenido de la carpeta de destino “C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop” de mi maquina de desarrollo al servidor de Deployment **
Configurando el Proyecto y los reportes
Ahora nos dirigimos a nuestro proyecto de Jenkins y accedemos al panel de Configuración, para añadir los siguientes pasos:
Agregar un paso Ejecutar un comando de Windows con la siguiente instrucción:
"C:\JenkinsTools\opencover\OpenCover.Console.exe" -target:"C:\JenkinsTools\nunit\nunit3-console.exe" -targetargs:"%JOB_NAME%.Tests\bin\Debug\%JOB_NAME%.Tests.dll /framework:net-4.5 /xml:%JOB_NAME%NunitTestResults.xml /nologo /noshadow" -filter:"+[*]* -[%JOB_NAME%.Tests]*" -register:Path64 -hideskipped:Filter -output:%JOB_NAME%Coverage.xml
Agregar otro paso Ejecutar un comando de Windows con la siguiente instrucción:
"C:\JenkinsTools\ReportGenerator\ReportGenerator.exe" -reports:%JOB_NAME%Coverage.xml -targetDir:CodeCoverageHTML
Agregar un paso mas de tipo Ejecutar un comando de Windows con la siguiente instrucción:
"C:\JenkinsTools\opencover_to_cobertura_converter\OpenCoverToCoberturaConverter.exe" -input:%JOB_NAME%Coverage.xml -output:%JOB_NAME%Cobertura.xml -sources:%WORKSPACE%
Finalmente agregamos un paso de Tipo VS Code Metrics PowerTool exec. Alli elegimos la herramienta previamente configurada, especificamos la(s) DLL(s) que deseamos se realice el analisis y un nombre para el archivo XML de salida:
Publicación de los reportes
Ahora añadimos pasos al bloque que se ejecuta DESPUES del bloque Build:
Primero añadimos un paso de Tipo Publicar Informes de “Cobertura” y especificamos el nombre del archivo XML de origen. Aqui es muy importante respectar las Mayusculas y minusculas, porque si no, Jenkins no encuentra el archivo.
{NOMBRE_DEL_PROYECTO_JENKINS}Cobertura.xml
Ahora añadimos la generación de un reporte HTML basado en el resultado de OpenCover, con los siguientes parametros:
CodeCoverageHTML # HTML directorio
index.htm # Pagina de inicio del Reporte
Code Coverage # Titulo del Reporte
Y finalmente agregamos el reporte de Metricas de Visual Studio:
El nombre metrics.xml debe coincidir con el nombre utilizado como salida del paso VS Code Metrics PowerTool exec previamente configurado