Lanzando nuestros tests de jasmine-node con IntelliJ IDEA

0
10042

Creación: 23-12-2012

Índice de contenidos

1. Introducción
2. Entorno
3. Instalando los plugins
4. Creando un proyecto web con IntelliJ
5. Ejecutando los tests de Jasmine con jasmine-node desde IntelliJ IDEA 12
5.1. Ejecutando los tests bajo demanda
5.2. Ejecutando los tests automáticamente
6. Conclusiones
7. Sobre el autor

1. Introducción

En el tutorial «Hello Jasmine! Primeros pasos para hacer BDD/TDD con JavaScript» vimos distintas maneras de lanzar los tests de Jasmine. En esta ocasión vamos a ver como integrar dentro de IntelliJ IDEA 12 la ejecución de los tests de Jasmine con jasmine-node.

2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15′ (2.5 GHz Intel i7, 8GB 1333 Mhz DDR3, 256GB Solid State Drive).
  • AMD Radeon HD 6770M 1024 MB
  • Sistema Operativo: Mac OS X Lion 10.8.2
  • IntelliJ IDEA 12
  • Node.js v0.8.15

3. Instalando los plugins

IntelliJ es un IDE que podemos extender a base de plugins en función de nuestras necesidades. En esta ocasión vamos a instalar el pluin de Node.js y el plugin de jsTestDrive.

Para ello vamos a IntelliJ IDEA –> Preferences… –> Plugins

Instalando un plugins en IntelliJ IDEA 12Instalando JSTestDriver en IntelliJ IDEA 12

El plugin de JSTestDriver nos va a permitir lanzar test con varios frameworks de JavaScript, incluido Jasmine, en distintos navegadores; y también nos va a permitir el auto completado cuando estemos escribiendo los tests.

Instalando Node.js en IntelliJ IDEA 12

Gracias al plugin de Node.js vamos a poder lanzar ejecuciones de node desde dentro de nuestro IntelliJ, haciendo más fácil el trabajo con los tests, ya que no tendremos que estar cambiando constantemente a la consola (como nos pasaba en el tutorial que hemos mencionado en la introducción).

4. Creando un proyecto web con IntelliJ

IntelliJ es un IDE especialmente pensado para Java, pero también nos permite trabajar de forma impecable con HTML, CSS, y JavaScript. Para crear un proyecto web sencillo hacemos File –> New Project…

Crear un proyecto Web con IntelliJ IDEA 12

Ahora nos copiamos los ficheros del ejemplo con jasmine-node del tutorial Hello Jasmine! Primeros pasos para hacer BDD/TDD con JavaScript. Además también crearemos un directorio lib para guardar otras librerías de JavaScript.

Si, por ejemplo, abrimos el fichero player.spec.js, podemos ver que no estamos consiguiendo auto completado de la librería de Jasmine

No hay auto completado de Jasmine

Basta con ponernos encima y hacer Alt + Intro y nos aparecerá un menú donde podemos indicar que queremos añadir el adaptador de Jasmine para lanzar los tests, conseguir auto completado, …

Añadir el adaptador de Jasmine para conseguir auto completado

Nos preguntará que dónde queremos guardar las librerías para el adaptador. Le indicamos el directorio lib que habíamos creado anteriormente (ojo porque estas librerías no deberían llegar nunca a producción, son simplemente para lanzar los tests y facilitarnos la vida en el entorno de desarrollo).

Indicando donde guardar las librería para el adaptador de Jasmine de JSTestDriver

Si ahora nos volvemos a fijar en el código fuente deberíamos ver que si nos está reconociendo la funciones de Jasmine, y que nos funciona perfectamente el auto completado.

Indicando donde guardar las librería para el adaptador de Jasmine de JSTestDriver

5. Ejecutando los tests de Jasmine con jasmine-node desde IntelliJ IDEA 12

5.1. Ejecutando los tests bajo demanda

En lugar de usar el JSTestDrive, que nos levantaría un navegador, vamos a lanzar los test usando directamente jasmine-node. Además esto tiene la ventaja que podemos usar el modo autotest para que los tests se lancen continuamente de forma automática en cuanto hagamos cualquier cambio en cualquier fichero (lo veremos en el punto siguiente).

Para ello hacemos Run –> Edit Configurations… y damos sobre el + para ver las opciones que tenemos disponibles, seleccionaremos Node.js

Creando un runner para Node.js

Ahora rellenamos las opciones tal como se ve en la imagen.

Configuración del runner de Node.js para lanzar los tests de Jasmine

Se puede ver como hemos indicado donde se encuentra el ejecutable de node, así como el script de jasmine-node que vamos a ejecutar. También podemos ver como indicamos como parámetro de esta aplicación el directorio spec, que será donde se buscarán los tests que hay que ejecutar (esto nos permite jugar con la estructura de directorios para crearnos varias configuraciones y así lanzar sólo los tests que nos interesa en cada momento).

Ahora basta con pulsar sobre el botón de play y veremos como se ejecutan los tests.

Ejecutando los tests de Jasmine con jasmine-node en el IntelliJ IDEA 12

5.2. Ejecutando los tests automáticamente

Vamos a crear un nuevo runner para ejecutar los test automáticamente. Tan sólo tenemos que cambiar la configuración tal como se muestra en la imagen.

Configuración del runner de Node.js para lanzar automáticamente los tests de Jasmine cuando hay cambios en el código

Se ve como hemos cambiado los parámetros que le pasamos a jasmine-node para indicar que queremos que esté continuamente comprobado si hay cambios en los ficheros. Al indicar . como el directorio a partir del cual hay que comprobar si cambia algo, conseguimos que se lancen los tests tantos si cambiamos los ficheros con los specs, como si cambiamos el código de producción.

Ahora si damos al play para este runner, veremos algo como:

Ejecutando jasmine-node de forma automática en IntelliJ IDEA 12

Se ve como se han lanzado los tests, pero el proceso no ha terminado, está esperando. Si ahora cambiamos un fichero y guardamos los cambios, veremos como se de forma inmediata se vuelven a ejecutar los tests.

Ejecutando jasmine-node en cuento cambia un fichero en IntelliJ IDEA 12

Si vemos que esto no está funcionando correctamente y que parece que cuando guardamos los cambios no se lanzan los tests de forma automática, conviene que revisemos la configuración IntelliJ IDEA –> Preferences… –> General –> Use «safe write», para ver que está deshabilitada.

Desactivando safe write en IntelliJ IDEA 12

6. Conclusiones

Ya sabéis que es fundamental conocer bien las herramientas con las que trabajamos a diario para sacarles el mayor partido. En esta ocasión hemos visto como configurar IntelliJ IDEA 12 para poder lanzar cómodamente los tests de Jasmine, sin necesidad de cambiar a la consola de comandos.

7. Sobre el autor

Alejandro Pérez García, Ingeniero en Informática (especialidad de Ingeniería del Software) y Certified ScrumMaster

Socio fundador de Autentia (Desarrollo de software, Consultoría, Formación)

mailto:alejandropg@autentia.com

Autentia Real Business Solutions S.L. – «Soporte a Desarrollo»

http://www.autentia.com

 

Alejandro Pérez García
Alejandro es socio fundador de Autentia y nuestro experto en Java EE, Linux y optimización de aplicaciones empresariales. Ingeniero en Informática y Certified ScrumMaster. Seguir @alejandropgarci Si te gusta lo que ves, puedes contratarle para darte ayuda con soporte experto, impartir cursos presenciales en tu empresa o para que realicemos tus proyectos como factoría (Madrid). Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad