unitarias pruebas node automatizadas javascript testing selenium tdd bdd

node - pruebas unitarias javascript



¿Cómo se ejecutan pruebas unitarias en todos los navegadores? (14)

Como la gente ya lo ha dicho, debes usar JsTestDriver. Tiene su propio sistema de prueba, pero puede usar otras bibliotecas de prueba con él, por ejemplo Jasmine ( http://pivotal.github.com/jasmine/ ). Puede encontrar una lista de adaptadores para JsTestDriver aquí: http://code.google.com/p/js-test-driver/wiki/XUnitCompatibility

Nunca he usado Selenium, pero supongo que es para simular la interacción del usuario en todos los navegadores.

Eso es como pruebas de integración.

Pero, ¿cómo se prueban las bibliotecas / frameworks js (pruebas unitarias) en todos los navegadores de forma automatizada?


Como sugiere la publicación referenciada en un artículo anterior, puede usar http://code.google.com/p/js-test-driver/ . Es específicamente para pruebas de unidades de JavaScript en varios navegadores, exactamente lo que desea. Lo he estropeado y es bastante bueno. Aunque no he hecho ninguna prueba comercial seria.


Debe considerar las capacidades que ofrece crossbrowsertesting.com (no es gratis). Para la prueba js prueba JsUnit (http://www.jsunit.net/).

Citado de su página de inicio

JsUnit es un marco de pruebas unitarias para JavaScript del lado del cliente (en el navegador). Es esencialmente un puerto de JUnit a JavaScript. También se incluye una plataforma para automatizar la ejecución de pruebas en múltiples navegadores y máquinas múltiples que ejecutan diferentes sistemas operativos.


Debes consultar http://saucelabs.com/ un entorno de selenio en la base de la nube que te permite construir tu prueba y luego subirlos, ejecutarlos en tantos navegadores como quieras.


El mejor uno es el de YUI: http://developer.yahoo.com/yui/3/test/ Pero hacer pruebas unitarias en cada navegador es un poco difícil ... La mayoría de las personas simplemente prueba con él durante el desarrollo y simplemente use node.js para probar más adelante en caso de que rompan algo.



Me gustaría buscar QUnit , que es lo que jQuery usa. Lo he ejecutado en muchos navegadores de escritorio, iPhones y teléfonos con Android.

Hay algunos tutorials geniales y se pueden integrar fácilmente con cosas como js-test-driver . QUnit se modela después de JUnit y de todos los demás marcos de prueba de xUnit (como PHPUnit) por lo que es fácil seleccionar la API.

La sintaxis básica es la siguiente:

test("my first test", function() { var str = "hello"; equals( "hello", str, "Should be hello" ); });

También se ve bastante bien:


No lo he usado hasta ahora, y todavía está en versión beta, pero FuncUnit declara a sí mismo como "Un conjunto de pruebas funcionales basado en qUnit, Selenium y jQuery".

También hay una infographic explica cómo funciona

Tal vez es algo que quieres? El repositorio de Github parece ser bastante activo.



Para probar la unidad, puede probar http://code.google.com/p/js-test-driver/

JsTestDriver consiste en un único archivo JAR que contiene todo lo que necesita para comenzar. Para una discusión en profundidad de la opción de línea de comando, vea GettingStarted.

Aquí hay una descripción general de cómo funciona JsTestDriver en tiempo de ejecución ...



Puedes echar un vistazo a TestSwarm :

proyecto en el que estoy trabajando: TestSwarm ...

Su construcción es muy simple. Es un cliente tonto de JavaScript que continuamente hace ping a un servidor central buscando más pruebas para ejecutar. El servidor recopila suites de prueba y las envía a los clientes respectivos.

Todas las suites de prueba se recopilan. Por ejemplo, 1 "commit" puede tener 10 suites de prueba asociadas (y se distribuirá a una selección de navegadores) ...

Lo bueno de esta construcción es que puede funcionar de manera tolerante a fallas. Los clientes pueden ir y venir. En un momento dado, es posible que no haya ningún Firefox 2 conectado, en otro momento podría haber treinta. Los trabajos se ponen en cola y se dividen a medida que la carga lo requiere. Además, el cliente es lo suficientemente simple como para poder ejecutarlo en dispositivos móviles (a la vez que es completamente independiente del marco de prueba) ...


Selenium o SauceLabs, etc. no son pruebas unitarias. Son soluciones funcionales / de prueba de integración.

Necesita abstraer sus usos externos como DOM para probar la unidad javascript.

Escriba sus pruebas para que puedan usar cualquier biblioteca externa como jquery por configuración. De modo que puede probar su lógica de forma unitaria sin tocar ninguna externalidad y también puede probar las pruebas entre navegadores.


Ya no se mantiene activamente, pero aún estoy contento con JSUnit para las pruebas de unidad de Javascript: https://github.com/pivotal/jsunit

Incluye tanto un marco HTML / Javascript que puede ejecutar en el navegador como un corredor de prueba basado en Java que puede invocar desde hormiga.