Karma es un corredor de prueba de JavaScript creado con Node.js y diseñado para pruebas unitarias.
El transportador es para pruebas de extremo a extremo y utiliza Selenium Web Driver para conducir las pruebas.
Ambos han sido realizados por el equipo de Angular. Puede usar cualquier biblioteca de aserciones que desee con cualquiera.
Screencast: Karma Comenzando
relacionado :
pros :
- Utiliza node.js, por lo que es compatible con Win / OS X / Linux
- Ejecute pruebas desde un navegador o sin cabeza con PhantomJS
- Ejecutar en múltiples clientes a la vez
- Opción para iniciar, capturar y apagar automáticamente los navegadores
- Opción para ejecutar servidores / clientes en la computadora de desarrollo o por separado
- Ejecute pruebas desde una línea de comando (se puede integrar en ant / maven)
- Escribir pruebas estilo xUnit o BDD
- Admite múltiples marcos de prueba de JavaScript
- Pruebas de ejecución automática al guardar
- Proxies solicita dominio cruzado
- Posible personalizar:
- Extiéndalo para envolver otros marcos de prueba (Jasmine, Mocha, QUnit incorporado)
- Sus propias afirmaciones / refutaciones
- Reporteros
- Lanzadores de navegador
- Plugin para WebStorm
- Soportado por Netbeans IDE
Contras :
No estoy totalmente calificado para comentar sobre las características, fortalezas y debilidades de mocha.js, pero me lo recomendó alguien en quien confío en la comunidad de JS.
Lista de características, según lo informado por su sitio web:
- soporte de navegador
- Soporte asíncrono simple, incluyendo promesas.
- informe de cobertura de prueba
- soporte de diferencia de cuerda
- javascript # API para ejecutar pruebas
- estado de salida adecuado para el soporte de CI, etc.
- detecta automáticamente y deshabilita la coloración para no ttys
- asigna excepciones no detectadas al caso de prueba correcto
- soporte de tiempo de espera de prueba asíncrona
- tiempos de espera específicos de la prueba
- soporte de notificaciones de gruñido
- informa la duración de las pruebas
- destaca pruebas lentas
- soporte de observador de archivos
- detección global de fugas variables
- opcionalmente, ejecute pruebas que coincidan con una expresión regular
- salida automática para evitar "colgarse" con un bucle activo
- metagenerar fácilmente suites y casos de prueba
- compatibilidad con archivos mocha.opts
- títulos de suite en los que se puede hacer clic para filtrar la ejecución de la prueba
- soporte de depurador de nodos
- detecta múltiples llamadas a done ()
- usa cualquier biblioteca de afirmaciones que quieras
- informes extensibles, incluidos más de 9 reporteros
- DSL de prueba extensible o "interfaces"
- antes, después, antes de cada uno, después de cada gancho
- soporte arbitrario del transpilador (coffee-script, etc.)
- Paquete TextMate
Esto ya no existe, redirige a sequential.js en su lugar
Yolpo es una herramienta para visualizar la ejecución de javascript. Se alienta a los desarrolladores de API de Javascript a escribir sus casos de uso para mostrar y contar su API. Tales casos de uso forman la base de las pruebas de regresión.
Test runner futurista con soporte incorporado para ES2015. Aunque JavaScript es de un solo subproceso, IO en Node.js puede ocurrir en paralelo debido a su naturaleza asíncrona. AVA aprovecha esto y ejecuta sus pruebas al mismo tiempo, lo que es especialmente beneficioso para las pruebas pesadas IO. Además, los archivos de prueba se ejecutan en paralelo como procesos separados, lo que le brinda un rendimiento aún mejor y un entorno aislado para cada archivo de prueba.
- Minimal y rapido
- Sintaxis de prueba simple
- Ejecuta pruebas simultáneamente
- Aplica la escritura de pruebas atómicas
- Sin globales implícitos
- Entorno aislado para cada archivo de prueba
- Escribe tus pruebas en ES2015
- Promesa de apoyo
- Soporte de la función del generador
- Soporte de función asíncrona
- Apoyo observable
- Afirmaciones mejoradas
- TAP o salida opcional
- Limpiar rastros de pila
Un corredor de prueba de JavaScript creado con Node.js. Muy modular y flexible. Viene con su propia biblioteca de afirmaciones, pero puede agregar la suya si lo desea. La biblioteca de aserciones está desacoplada, por lo que también puede usarla con otros corredores de prueba. En lugar de usar assert(!...)
o expect(...).not...
, usa refute(...)
cuál es un buen giro en mi humilde opinión.
Un kit de herramientas de prueba de JavaScript del navegador. Realiza pruebas de navegador con automatización de navegador (piense en JsTestDriver), prueba de página HTML estática de estilo QUnit, prueba en navegadores sin cabeza (PhantomJS, jsdom, ...) y más. ¡Mira el resumen !
Un kit de herramientas de prueba de Node.js. Obtiene la misma biblioteca de casos de prueba, biblioteca de aserciones, etc. Esto también es ideal para el navegador híbrido y el código Node.js. Escriba su caso de prueba con Buster.JS y ejecútelo tanto en Node.js como en un navegador real.
Screencast: Buster.js Primeros pasos (2:45)
pros :
- Utiliza node.js, por lo que es compatible con Win / OS X / Linux
- Ejecute pruebas desde un navegador o sin cabeza con PhantomJS (pronto)
- Ejecutar en múltiples clientes a la vez
- Admite pruebas NodeJS
- No es necesario ejecutar servidores / clientes en la computadora de desarrollo (no es necesario para IE)
- Ejecute pruebas desde una línea de comando (se puede integrar en ant / maven)
- Escribir pruebas estilo xUnit o BDD
- Admite múltiples marcos de prueba de JavaScript
- Aplazar las pruebas en lugar de comentarlas
- SinonJS incorporado
- Pruebas de ejecución automática al guardar
- Proxies solicita dominio cruzado
- Posible personalizar:
- Extiéndalo para envolver otros marcos de prueba (JsTestDriver integrado)
- Sus propias afirmaciones / refutaciones
- Reporteros (xUnit XML, puntos tradicionales, especificación, tap, TeamCity y más integrados)
- Personalizar / reemplazar el HTML que se utiliza para ejecutar las pruebas del navegador
- Integración de TextMate y Emacs
Contras :
- Todavía en beta, por lo que puede tener errores
- No hay complemento para Eclipse / IntelliJ (todavía)
- No agrupa los resultados por os / browser / version como TestSwarm *. Sin embargo, imprime el nombre y la versión del navegador en los resultados de la prueba.
- No hay historial de resultados de pruebas anteriores como TestSwarm *
- No funciona completamente en Windows a partir de mayo de 2014
* TestSwarm también es un servidor de integración continua, mientras que necesita un servidor CI independiente para Buster.js. Sin embargo, genera informes xUnit XML, por lo que debería ser fácil de integrar con Hudson , Bamboo u otros servidores CI.
https://github.com/jquery/testswarm
TestSwarm ya no está oficialmente en desarrollo activo como se indica en su página web de GitHub. Recomiendan Karma, browserstack-runner o Intern.
Este es un marco basado en el comportamiento (como se indica en la cita a continuación) que podría interesar a los desarrolladores familiarizados con Ruby o Ruby on Rails. La sintaxis se basa en RSpec que se utilizan para probar en proyectos Rails.
Las especificaciones de Jasmine se pueden ejecutar desde una página html (en forma qUnit) o desde un corredor de prueba (como Karma).
Jasmine es un marco de desarrollo basado en el comportamiento para probar su código JavaScript. No depende de ningún otro marco de JavaScript. No requiere un DOM.
Si tiene experiencia con este marco de prueba, contribuya con más información :)
Página principal del proyecto: http://jasmine.github.io/
QUnit se enfoca en probar JavaScript en el navegador mientras brinda tanta comodidad al desarrollador como sea posible. Difusión del sitio:
QUnit es un conjunto de pruebas de unidad JavaScript potente y fácil de usar. Lo utilizan los proyectos jQuery, jQuery UI y jQuery Mobile y es capaz de probar cualquier código JavaScript genérico
QUnit comparte algo de historia con TestSwarm (arriba):
QUnit fue desarrollado originalmente por John Resig como parte de jQuery. En 2008 obtuvo su propia documentación de inicio, nombre y API, lo que permitió a otros usarla también para sus pruebas unitarias. En ese momento todavía dependía de jQuery. Una reescritura en 2009 corrigió eso, ahora QUnit se ejecuta completamente independiente. Los métodos de afirmación de QUnit siguen la especificación de Prueba de Unidad CommonJS, que fue influenciada en cierta medida por QUnit.
Página principal del proyecto: http://qunitjs.com/
Otra gran herramienta es sinon.js por Christian Johansen, autor de Test-Driven JavaScript Development . Mejor descrito por él mismo:
Prueba independiente de espías, trozos y simulacros de JavaScript. Ninguna dependencia funciona con ningún marco de prueba de unidad.
El sitio web del pasante proporciona una comparación directa de características con los otros marcos de prueba en esta lista. Ofrece más funciones listas para usar que cualquier otro sistema de prueba basado en JavaScript.
Un marco de prueba nuevo pero muy potente. También permite pruebas basadas en instantáneas, esto aumenta la velocidad de prueba y crea una nueva dinámica en términos de prueba
Echa un vistazo a una de sus charlas: https://www.youtube.com/watch?v=cAKYQpTC7MA
Mejor aún: Comenzando
Eche un vistazo al marco de prueba de unidad de Dojo Object Harness (DOH), que es prácticamente un arnés independiente del marco para la prueba de unidad de JavaScript y no tiene ninguna dependencia de Dojo. Hay una muy buena descripción de esto en la Unidad que prueba aplicaciones Web 2.0 utilizando el Arnés de Objetivo Dojo .
Si desea automatizar las pruebas de IU (un punto doloroso de muchos desarrolladores), consulte doh.robot (actualización temporal hacia abajo: otro enlace http://dojotoolkit.org/reference-guide/util/dohrobot.html ) y dijit .robotx (caída temporal) . Este último está diseñado para una prueba de aceptación. Actualizar:
Los artículos de referencia explican cómo usarlos, cómo emular a un usuario que interactúa con su interfaz de usuario con el mouse y / o el teclado, y cómo grabar una sesión de prueba, para que pueda "reproducirla" más tarde automáticamente.
fuente
Chutzpah - Un corredor de prueba de JavaScript
Creé un proyecto de código abierto llamado Chutzpah que es un corredor de prueba para pruebas unitarias de JavaScript. Chutzpah le permite ejecutar pruebas unitarias de JavaScript desde la línea de comandos y desde el interior de Visual Studio. También admite la ejecución en el servidor de integración continua de TeamCity.
fuente
La sección de JavaScript de la entrada de Wikipedia, Lista de marcos de pruebas unitarias , proporciona una lista de opciones disponibles. Indica si funcionan del lado del cliente, del lado del servidor o de ambos.
fuente
BusterJS
También está BusterJS de Christian Johansen, autor de Test Driven Javascript Development y Sinon framework. Desde el sitio:
fuente
prueba de google-js:
Marco de prueba de JavaScript lanzado por Google: https://github.com/google/gjstest
Actualmente no hay binarios para Windows
fuente
Ahora estamos usando Qunit con Pavlov y JSTestDriver todos juntos. Este enfoque funciona bien para nosotros.
QUnit
Pavlov , fuente
jsTestDriver , fuente
fuente
Tienes "carreras en el navegador real" como profesional, pero en mi experiencia eso es una estafa porque es lento. Pero lo que lo hace valioso es la falta de suficiente emulación JS de las alternativas que no son del navegador. Podría ser que si su JS es lo suficientemente complejo que solo una prueba en el navegador sea suficiente, pero hay un par de opciones más a considerar:
HtmlUnit : "Tiene bastante buena compatibilidad con JavaScript (que mejora constantemente) y puede funcionar incluso con bibliotecas AJAX bastante complejas, simulando Firefox o Internet Explorer dependiendo de la configuración que desee utilizar". Si su emulación es lo suficientemente buena para su uso, será mucho más rápido que manejar un navegador.
Pero tal vez HtmlUnit tiene suficiente soporte JS pero ¿no te gusta Java? Entonces tal vez:
Celerity : Watir API ejecutándose en JRuby respaldado por HtmlUnit.
o de manera similar
Schnell : otro contenedor JRuby de HtmlUnit.
Por supuesto, si HtmlUnit no es lo suficientemente bueno y tiene que manejar un navegador, entonces puede considerar que Watir maneje su JS .
fuente
YUI también tiene un marco de prueba . Este video de Yahoo! El teatro es una buena introducción, aunque hay muchos conceptos básicos sobre TDD por adelantado.
Este marco es genérico y se puede ejecutar en cualquier biblioteca JavaScript o JS.
fuente
También puede interesarle el marco de prueba de unidad que forma parte de qooxdoo , un marco de RIA de código abierto similar a Dojo, ExtJS, etc. pero con una cadena de herramientas bastante completa.
Pruebe la versión en línea del testrunner . Sugerencia: presione la flecha gris en la parte superior izquierda (debería hacerse más obvio). Es un botón "reproducir" que ejecuta las pruebas seleccionadas.
Para obtener más información sobre las clases JS que le permiten definir sus pruebas unitarias, consulte el visor de API en línea .
Para pruebas de IU automatizadas (basadas en Selenium RC), consulte el proyecto Simulator .
fuente
Usted debe echar un vistazo a env.js . Vea mi blog para ver un ejemplo de cómo escribir pruebas unitarias con env.js.
fuente
Agregamos la integración JUnit a nuestro generador de código Java a Javascript ST-JS ( http://st-js.org ). El marco genera el Javascript correspondiente tanto para el código probado como para las pruebas unitarias y envía el código a diferentes navegadores.
No hay necesidad de un servidor separado ya que el corredor de prueba de unidad abre el puerto http necesario (y lo cierra una vez que finalizan las pruebas). El marco manipula el stacktrace de Java para que el complemento JUnit Eclipse muestre correctamente las afirmaciones fallidas. Aquí hay un ejemplo simple con jQuery y Mockjax:
fuente
MochiKit tiene un marco de prueba llamado SimpleTest que parece haberse puesto al día. Aquí hay una publicación de blog del autor original .
fuente