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 |