with unit test que instalar example javascript jquery unit-testing jenkins jasmine

unit - ¿Cómo podemos ejecutar pruebas JavaScript jazmín desde Jenkins(Hudson) sin cargar un JSP?



que es jasmine (5)

Tenemos un rico cliente web. Nuestros controladores y fachadas de servicios están escritos en coffeescript (JavaScript) y jquery. En el pasado habrían sido java.

Para ejecutar nuestras pruebas de jazmín JavaScript de Jenkins / Hudson, usamos junit y htmlunit de java para cargar una página jsp orientada a prueba que incluye las especificaciones de jazmín.

Cuando la Htmlunit intenta ejecutarse, explota tratando de obtener Page () probablemente debido a una ruta de clase de analizador XML que es extremadamente difícil de rastrear en nuestro mundo.

Solo queremos poder ejecutar nuestras pruebas de JavaScript de Jenkins y hacer que informe la falla si una prueba de JavaScript no se aprueba. Solo estamos usando jsp y htmlunit para ejecutar pruebas de JavaScript. ¿Podemos cargar las pruebas de JavaScript y el código de JavaScript en un motor de JavaScript con Jenkins como lo que lo inicia? ¿Si es así, cómo?


¿Puedes usar selenio? Eso realmente usaría un navegador real y se acercaría lo más posible al entorno real.



Anteriormente resolví este problema ejecutando las pruebas con un complemento node.js llamado jasmine-node

Esta solución requiere, por supuesto, node.js y algunos módulos de nodos para ejecutar correctamente las pruebas de jazmín. No existe un navegador real ejecutando las pruebas, sino uno emulado usando un módulo llamado jsdom, que básicamente crea un navegador sin cabeza, y más específicamente, un DOM, con el que las pruebas pueden interactuar.

Hay módulos de nodos para jQuery, guión bajo y otros también, por lo que también se pueden probar. Incluso puede omitir toda la emulación del navegador si prefiere ejecutar las pruebas en un navegador, aunque me resulta demasiado engorroso en comparación con las pruebas automatizadas de Jenkins.

jasmine-node genera jUnit test reports, que Jenkins puede interpretar muy bien.

Me acabo de dar cuenta de que hay un plugin jenkins-jasmine-node que puede facilitar este proceso.


Jasmine Reporters también sería una solución. Tiene instrucciones para ejecutarse headless a través de PhantomJS, por ejemplo, y puede generar JUnit XML para que Jenkins pueda comprender los resultados de la prueba de forma nativa, graficando el conteo de pruebas, la duración y la falla a lo largo del tiempo.

Además, el contenedor "xvfb-run" a menudo provisto con xvfb es de gran ayuda aquí, por lo que puedes hacer "xvfb-run phantomjs.runner.sh ..." en un entorno realmente sin cabeza.