Introducción

Una de las propuestas de las metodologías ágiles que más acogida ha tenido es la Integración Continua, incluso entre los practicantes de metodologías o modelos más rigurosos como RUP y CMMI. Sin duda alguna, con la popularidad de esta práctica, Hudson1 ha emergido como la herramienta de facto para automatizar el proceso, por su simplicidad para programar y ejecutar construcciones y sobre todo por la cantidad de herramientas adicionales con las que se puede integrar. En este y durante los próximos artículos trataré de explicar de forma simple y práctica como instalar y configurar Hudson como motor de Integración Contínua integrado con otras herramientas para generar reportes de cobertura de código de pruebas unitarias, bugs en el código, buenas prácticas e integración con SONAR, un proyecto que se autodenomina como “una plataforma para la administración de la calidad del código”2.

La Integración Continua es una práctica que han promovido las metodologías ágiles con la que se procura que los desarrolladores integren frecuentemente su trabajo en un repositorio centralizado con el objetivo que algún procedimiento automático use este repositorio para construir el producto y ejecutar pruebas que faciliten la detección temprana de errores. Martin Fowler en su conocido artículo "Continuous Integration"3 la define así:

La Integración Continua es una práctica de desarrollo de software donde los miembros de un equipo integran su trabajo con frecuencia, usualmente cada persona lo hace al menos una vez al día, generando varias integraciones diarias. Cada una de estas integraciones es verificada por una construcción automática que incluye pruebas para detectar errores tan rápido como sea posible. De esta forma, muchos equipos descubren que esta práctica reduce significativamente los problemas de integración y logra que el equipo desarrolle software cohesivo rápidamente.

Según esta definición es claro que se requiere algún mecanismo automático para ejecutar la construcción automática de las aplicaciones, ejecutar pruebas y otras tareas que pueden ser útiles en este proceso. Es aquí donde entra Hudson como una herramienta en la que se pueden centralizar todas estas actividades.

Hudson es una aplicación Web en la que se pueden programar trabajos de forma similar al cron de Linux, Unix o a las tareas programadas de Windows, pero con un montón de plugins que facilitan la orientación de la herramienta hacia la construcción automática de aplicaciones4. Por ejemplo la configuración de un trabajo típico incluye registrar los datos de un repositorio de Subversion/CVS, la ejecución de una tarea ANT para compilar y empaquetar y la ejecución de pruebas unitarias del proyecto con JUNIT. A partir de este proceso Hudson interpreta los resultados generados por ANT y JUNIT

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License