jenkinsback - keblato/TutorialesTalleres-Angular GitHub Wiki
Configuración de integración continua con Jenkins (Pruebas del Banckend)
Configuraciones previas
Después de haber instalado Jenkins (si no ha configurado Sonar, o no ha especificado en la instalación de NodeJs para Jenkins que Mocha, Chai e Istanbul sean también instalados, dírijase a Instalación y configuración de Jenkis.
¿Qué pruebas se van a ejecutar en esta tarea?
Este tutorial le explicará cómo crear una tarea en Jenkins para ejecutar las pruebas unitarias de un Backend desarrollado en NodeJs. Para ello se utilizarán Mocha y Chai porque son los packages utilizados para escribir las pruebas, e Istanbul que se encarga de calcular el cubrimiento de las pruebas.
Istanbul genera un resumen de cubrimiento llamado lcov.info, el cual es leído por SonarQube. En SonarQube podrá ver visualizar y detallar a fondo los resultados del cubrimiento de las pruebas.
La nueva tarea de Jenkins
Después de haber realizado las configuraciones previas, diríjase a la página principal de Jenkins y haga click en 'Nueva tarea'. Asígnele un nombre y elija la opción Freestyle project
![]() |
|---|
| Figura 1: creación de una nueva tarea |
Configure los datos del repositorio que quiere probar.
Luego, seleccione la instalación de Jenkins que contiene Chai, Mocha e Istanbul y escriba los siguientes códigos a ejecutar en Shell o ventana de comandos de Windows:
npm install
npm run coverage
Importante: coverage es un script que se definió en el package.json del proyecto para obligar a Istanbul a generar el archivo lcov.info que requiere Sonar.
Defínalo en su package.json, o de lo contrario ejecute:
npm install
nyc --reporter=lcov --reporter=text-lcov npm test
![]() |
|---|
| Figura 2: comandos para ejecutar las pruebas |
![]() |
|---|
Figura 3: especificación del script coverage |
Luego agregue un paso de tipo Execute SonarQube Scanner y defina su configuración:
![]() |
|---|
| Figura 4: configuración ejemplo de Sonar |
En el caso del ejemplo, se definen las siguientes propiedades:
sonar.projectKey=BookStore (identificador del proyecto, puede elegirlo sin problema)
sonar.projectName=BookStore (nombre del proyecto, puede elegirlo sin problema y será el que verá en la interfaz de Sonar)
sonar.projectVersion=1.0 (la versión de su proyecto)
sonar.sourceEncoding=UTF-8 (el encoding de su proyecto)
sonar.language=js (el lenguage de su proyecto)
sonar.sources=. (deje este campo vacío)
sonar.tests=. (deje este campo vacío)
sonar.test.inclusions=test/** (el path hasta la carpeta donde están sus pruebas JavaScript elaboradas con Mocha y Chai)
sonar.exclusions=test/**, coverage/**, node_modules/**, assets/**, app/controllers/**, app.js, db.js (los directorios y archivos que no quiere que Sonar evalúe)
sonar.javascript.lcov.reportPaths=coverage/lcov.info (el path hasta el archivo lcov generado por Istanbul)
Guarde y ejecute la tarea.
En la consola verá:
Los resultados de las pruebas de Mocha y Chai:
![]() |
|---|
| Figura 5: ejecución pruebas de Mocha y Chai |
Los resultados de cubrimiento de Istanbul
![]() |
|---|
| Figura 6: resultados de cubrimiento de Istanbul |
La ejecución de Sonar
![]() |
|---|
| Figura 7: ejecución de Sonar |
Conéctese a localhost:9000 o donde haya configurado SonarQube para correr y analice los resultados de cubrimiento de sus pruebas:
![]() |
|---|
| Figura 8: interfaz de Sonar |







