Tutorial para instalar un kit para realizar testing automático en Javascript en Linux
Hay muy pocos artículos en la red sobre cómo testear automáticamente Javascript. En este tutorial veremos cómo hacerlo, y para ello instalaremos Node.js (servidor y gestor de módulos Javascript), PhantomJS (un navegador webkit para NodeJS) y CasperJS (una utilidad para crear scripts de navegación y testing).
Antes de empezar necesitamos el sistema de control de versiones GIT, lo puedes instalar usando la instrucción:
sudo apt-get install git
Para más formas de instalación del GIT puedes visitar la [página oficial](http://git-scm.com/book/en/Getting-Started-Installing-
Git). Una vez instalado clonaremos el repositorio GIT de NodeJS, lo compilaremos e instalaremos.
git clone https://github.com/joyent/node.gitcd node./configuremakesudo make install
Una vez instalado (puede tardar un rato) podemos ejecutar node -version y nos tiene que devolver la versión que se ha instalado.
Procederemos a instalar PhantomJS. El parámetro -g sirve para indicar que se instale para todo el sistema.
sudo npm install phantomjs -g
También podemos ejecutar el comando phantomjs —version para comprobar que se ha instalado correctamente.
Para instalar CasperJS haremos lo mismo, instalar el módulo mediante Nodejs:
sudo npm install casperjs -g
Con casperjs —version nos aparecerá la versión que se ha instalado.
Genial! si has llegado hasta aquí es que todo se ha instalado correctamente, en caso contrario no dudes en preguntar en los comentarios.
A continuación veremos un ejemplo de testing que integra CasperJS con PhantomJS. Para ello creamos un archivo en una ruta conocida con algun editor de textos un archivo llamado tests.js y guardamos el test a continuación.
casper.test.begin( 'La búsqueda en Google retorna 10 o más resultados', 5, function suite(test) { casper.start('http://www.google.es/', function () { test.assertTitle('Google', 'el titulo de la página es el esperado') test.assertExists( 'form[action="/search"]', 'encontrado el formulario de búsqueda' ) this.fill( 'form[action="/search"]', { q: 'webtutoriales', }, true ) })
casper.then(function () { test.assertTitle( 'webtutoriales - Buscar con Google', 'el título en la búsqueda es correcto' ) test.assertUrlMatch( /q=webtutoriales/, 'el término de búsqueda se ha enviado correctamente' ) test.assertEval(function () { return __utils__.findAll('h3.r').length >= 10 }, 'la búsqueda google por "webtutoriales" devuelve más de 10 resultados') })
casper.run(function () { test.done() }) })
Este test se encarga de realizar una búsqueda en google de la palabra clave “webtutoriales” y comprueba que devuelve resultados. Para ejecutar el test podemos ejecutar la siguiente instrucción desde la consola:
casperjs tests.js
Veremos si los tests han pasado o no.
# La búsqueda en Google retorna 10 o más resultadosPASS el titulo de la página es el esperadoPASS encontrado el formulario de búsquedaPASS el título en la búsqueda es correctoPASS el término de búsqueda se ha enviado correctamentePASS la búsqueda google por "webtutoriales" devuelve más de 10 resultadosPASS 5 tests executed in 1.191s, 5 passed, 0 failed, 0 dubious, 0 skipped.
Como habrás observado estas librerías son muy potentes. Entre otras cualidades, también se permiten hacer capturas de pantalla. Para ver más opciones visita la documentación oficial de casperjs.