Buenas,
basado en el post que escribí hace unos días sobre como crear una definición de Build para realizar análisis de código utilizando StyleCop para Team Build 2010 utilizando las Tfs Build Extensions, hoy toca un post similar pero para incorporar el análisis de métricas de código dentro de la ejecución de una build.
Para esto nos basaremos en el post anterior, pero a partir del punto 9 crearemos una nueva definición de Team Build, y seguiremos los siguientes pasos:
1. Una vez agregadas las referencias para poder utilizar Tfs Build Extensions, podremos ver que en la toolbox poseemos una actividad llamada [Code Metrics]. Esta actividad es la que utilizaremos para realizar el análisis de código.
2. Dentro de la opcion
Secuence > Run on Agent > Try Compile, Test, and Associate Changesets and Work Items > Secuence > Compile, Test, and Associate Changesets and Work Items > Try Compile and Test > Compile and Test > For Each Configuration in BuildSettings.PlatformConfigurations > Compile and Test for Configuration > If BuildSettings.HasProjectsToBuild > For Each Project in BuildSettings.ProjectsToBuild > Try to Compile the Project > Compile the Project
luego de la actividad [Run MSBuild for Project], agregaremos una Secuence a la que llamaremos [Run Code Metrics Analysis]
3. Dentro de la secuencia agregaremos 2 actividades de tipo [WriteBuildMessage] para mostrar el inicio y fin del proceso de análisis con Code Metrics.
- Start Activity
- DisplayName = Start Code Metrics Analysis
- Message = “Start Code Metrics Analysis”
- DisplayName = Finish Code Metrics Analysis
- Message = “Finish Code Metrics Analysis”
4. Entre ambas actividades agregaremos una nueva actividad de tipo [Code Metrics] con las siguientes propiedades definidas
- DisplayName = Run Code Metrics Analysis
- BinariesDirectory = BinariesDirectory
- CyclomaticComplexityErrorThreshold = 40
- CyclomaticComplexityWarningThreshold = 15
- MaintanabilityIndexErrorThreshold = 10
- MaintanabilityIndexWarningThreshold = 90
- FilesToProcess = New List(Of String)(New String() {“ElBruno.StyleCopBuild.Demo.dll”})
Aclaración: si ponemos el filtro en “*.dll”, el proceso de Code Metrics intentará analizr también la dll de pruebas unitarias y para la carga de la misma es necesario contar con varios ensamblados del IDE de Visual Studio 2010.
5. Protegemos nuestros cambios en el servidor de Source Control y ya podremos crear una nueva definición de Build para utilizar este proceso.
6. Partiendo de la definición de build que cree hace 2 días, hago un clonado de la misma, desplegando el menú contextual y seleccionando la opción [Clone Build Definition]
7. En la nueva definición de build que se ha creado, cambio el nombre de la misma, para este ejemplo será [Team Build.Code Metrics] y a continuación deberé cambiar la plantilla de ejecucíón de la build.
8. Para cambiar la plantilla, selecciono la sección [Process] y despliego los detalles de la plantilla.
9. El combo de plantillas por defecto no debería mostrar mi nueva plantilla, por lo que selecciono la opción [New] y luego la opcion [Select an existing XAML file].
10. Realizando un [Browse] sobre el Source Control, seleciono la plantilla que he creado en los primeros pasos [BuildTemplateWithCodeMetrics.xaml] y la asigno como plantilla de ejecución.
11. Guardo la definición de la build y al momento de lanzar la misma, me encuentro con que en el resultado de la build hay un par de datos a tener en cuenta:
Como no hemos cumplido “los límites” definidos para el análisis de Code Metrics, pues la build no se da como Sucess, sino que nos aparece como Partially succeded. Y entre la lista de errores y warnings podemos ver el porqué de este estado.
12. Finalmente comentar que en el log de ejecución podremos ver el detalle por cada elemento de nuestros ensamblados del análisis de Code Metrics.
El código del ejemplo se puede descargar desde:
Saludos @ Algún sitio entre Caudete y Madrid
El Bruno


Leave a comment