Evaluar código con jasmine y grunt

Categories:

Para integrar jasmine con grunt es necesario instalar el módulo grunt-contrib-jasmine como dependencia del proyecto.

$ npm install grunt-contrib-jasmine --save-dev
Instalar grunt-contrib-jasmine

Para utilizar el módulo necesitamos tener los archivos de las especificaciones – Specs – y el código fuente que las especificaciones evalúan.

Archivos necesarios para Jasmine
Archivos con las especificaciones y el código fuente.

En el archivo Gruntfile.js tenemos que:

  1. Incluir el módulo con las tareas grunt-contrib-jasmine
  2. Definir una tarea
  3. Configurar la tarea
module.exports = function(grunt) {

  grunt.initConfig({ 
    /*
      Configuar jasmine
    */

  });

  grunt.loadNpmTasks('grunt-contrib-jasmine');

  grunt.registerTask("default", ['jasmine', 'tarea02']);

};

Estas son algunas opciones de configuración de Jasmine para Grunt:

Opción

Descripción

src

Los archivos – código fuente – que se va a a evaluar.

specs

Las especificaciones con las que se va a evaluar el código.

vendor

Librerías externas que se cargan entes que el código fuente, especificaciones y helpers.

helpers

Archivos que no contienen el código fuente ni especificaciones pero ayudan para evaluar el código fuente. De manera predeterminada se cargan después de las librerías externas – vendor -.

version

La versión de jasmine que se va a utilizar. Únicamente están disponibles 2.0.0 y 2.0.1 – siendo 2.0.1 la predeterminada -.

outfile

Archivo que se va a utilizar para ejecutar las pruebas.
Este archivo se genera durante las pruebas y se elimina al concluir.

keepRunner

Se puede definir si el archivo de las especificaciones – outfile – se conserva aún después de evaluar el código.

polyfills

Librerías externas que se cargan antes que cualquier otra librería. La librería es5-shim se carga con esta librería.

display

Manera en que se visualizan las especificaciones.
full: Muestra las especificaciones completas.
short: Muestra un carácter – de prueba satisfactoria o fallida – como representación de cada prueba.
none: No muestra nada.

summary

Muestra una lista de pruebas fallidas y sus mensajes.

En este caso – como retomé el ejemplo utilizado en la publicación de jasmine – únicamente definimos los archivos del código fuente y las especificaciones que se van a utilizar para evaluarlo.

jasmine: {
       pivotal: {
         src: 'src/*.js',
         options: {
           specs: 'spec/*Spec.js'
         }
       }
     }

Para evaluar las especificaciones.

$ grunt jasmine

# Si está definido como tarea predeterminada
# se ejecuta con grunt
# $ grunt

Mientras se ejecutan las pruebas se crea un archivo _SpecRunner.html temporal en el directorio donde se manda llamar la tarea. El resultado de las pruebas se muestra en la línea de comandos.

Visualización Jasmine
Visualización de las pruebas en la línea de comandos.

Si utilizamos la opción display: short se muestra un carácter como representación de cada prueba.

Visualización reducida de las pruebas en la línea de comandos.
Visualización reducida de las pruebas en la línea de comandos.

En caso de querer evaluar ciertas especificaciones podemos hacerlo con el parámetro filter.

# Si queremos únicamente evaluar las especificaciones 
# que tengan el término curso incluimos el término después de filter
$ grunt jasmine --filter=curso

# Si queremos únicamente evaluar las especificaciones 
# que tengan el término función incluimos el término después de 
# filter
$ grunt jasmine --filter=funcion

Evaluar ciertas especificaciones.
Evaluar ciertas especificaciones.

Descarga el demo de grunt-jasmine.

En este caso únicamente es la carpeta demo-19.

Para instalar las dependencias hay que utilizar npm install desde el directorio del proyecto.

$ npm install