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