Objetivo
Como segunda parte del post de Integración Continua (CI) vamos a ver como tener una medición de coverage automatizada en un servidor donde podamos consultar el resultado (y los resultados anteriores).Por ejemplo:
Esto lo logramos combinando MSBuild, PartCover y CruiseControl.NET
Ejecutando PartCover desde una tarea de MSBuild
véase el Target Coverage en: http://code.google.com/p/dmsneluz/source/browse/trunk/src/dms.msbuildPodemos ver que primero definimos las líneas del archivo de configuración, luego escribimos el archivo de configuración para PartCover utilizando la tarea WriteLinesToFile, determinamos el nombre del archivo de reporte y finalmente ejecutamos PartCover con los parámetros indicados.
Configurar CruiseControl.NET
Aquí tenemos dos partes, ejecutar la tarea y visualizar los resultados.Ejecutar tarea de msbuild:
véase: http://code.google.com/p/dmsneluz/source/browse/trunk/ccnet/server/config/dms/dms.coverage.xmllas líneas mas relevantes de este archivo donde ejecutamos el msbuild con target Coverage que nos relaciona con el párrafo anterior:
<targets>Coverage</targets>Y donde incluimos del archivo de resultado del coverage al reporte de cruisecontrol:
<merge><files><file>c:\cruisecontrol\dms\Coverage\Reports\coverage.report.xml</file></files></merge>
Visualizar el resultado en el sitio web de cc.net
véase “Coverage per Assembly” y “Coverage per Type” en: http://code.google.com/p/dmsneluz/source/browse/trunk/ccnet/webdashboard/dashboard.configahí estamos incluyendo los reportes a nivel de Build Report.
<xslReportBuildPlugin description="Coverage per Assembly" actionName="PartCoverPerClassReport" xslFileName="xsl\PartCover.assembly.report.xsl" />
<xslReportBuildPlugin description="Coverage per Type" actionName="PartCoverReport" xslFileName="xsl\PartCover.class.report.xsl" />
Aclaraciones
- Los archivos xsl no vienen incluidos en la instalación default de cc.net, los mismo los podés encontrar en http://code.google.com/p/dmsneluz/source/browse/trunk/ccnet/webdashboard/xls (también hay otras versiones en internet, haz tu evaluación).
- En la carpeta ccnet intenté respetar la estructura de carpetas de CruiseControl.NET y puse solo los archivos modificados, pueden compararlos con los originales para ver las diferencias.
- Entre los archivos del repositorio pueden encontrar uno llamado Coverage.bat, este ejecuta la tarea de MSBuild sin necesidad de un servidor de integración continua.
No hay comentarios.:
Publicar un comentario