testing frameworks node.js

testing - ¿Cuál es el mejor marco de prueba para usar con Node.js?



frameworks (6)

Empecé a utilizar Jasmine para mis pruebas de JavaScript específicamente porque es pequeño y se ejecuta tanto en el navegador como en el nodo. También cuenta con una API de reportes y matcher realmente sólida, por lo que es fácil de integrar con otras herramientas en el futuro. Tener un framework de burlarse de Buildin también es útil ya que a menudo es una de las primeras cosas que agregaría cuando estuviese usando qunit para TDD en el navegador.

He consultado la larga lista de frameworks de prueba en https://github.com/ry/node/wiki/modules#testing . ¿Cuál es la experiencia con estos marcos?

Obviamente, la posibilidad de ejecutar en el navegador sería una gran ventaja, pero estoy interesado principalmente en Node.js. Algo con un sesgo muy asíncrono sería genial.


En base a los comentarios de la pregunta anterior, probé los vowsjs.org , y resolvió muchos problemas que estaba teniendo con mi prueba de sincronización. Su capacidad para mezclar pruebas seriales y paralelas es increíble.

Asegúrese de leer el documento de orientación con cuidado, pero una vez que lo domine, es flexible, potente y produce resultados agradables y limpios.

ACTUALIZACIÓN: También should a las personas que hagan check-out para sus afirmaciones. Permite afirmaciones muy flexibles y muy legibles, y es compatible tanto con Expresso como con Votos, y probablemente con la mayoría de los demás frameworks de prueba.

(Estoy publicando esto como una respuesta separada solo en caso de que las personas no noten los comentarios sobre la respuesta de Alfred).

ACTUALIZACIÓN 07/01/2015: Por lo que vale, desde entonces he cambiado de Votos a Mocha, y de Deber a Chai. Mocha ahora tiene un soporte mucho mejor para las pruebas asincrónicas que usan promesas, y Chai permite varias opciones flexibles de afirmación, incluida la API esperada, para aquellos a quienes no les gusta modificar el prototipo del objeto.


He estado usando NodeUnit y su capacidad para trabajar con funciones asíncronas es razonablemente sencilla.

Hay un buen tutorial que debería prepararte para ir con nodeunit en su blog .

[ Nota: la API ha cambiado desde el blogpost - setUp(callback) y tearDown(callback) ambos toman una devolución de llamada como argumento, que debe llamar cuando se completa su instalación / desmontaje. ]


Si quieres un verdadero marco de BDD, tal vez Yadda cuenta a Yadda . Se integra con mocha, jazmín, nodeunit, qunit, zombie y casperjs, para admitir archivos de características, por ejemplo

Scenario: provides the version of all services given service x is running and service y is running when I request the service versions then service x should be version 0.0.1 and service y should be version 0.0.2


Utilizo vowsjs.org que es fácil de usar asincrónico BDD framework (Desarrollo conducido por comportamiento) y hago el trabajo.

Por lo que veo últimamente, es lo que muchos eligieron para probar sus módulos de NPM, así que creo que hasta ahora es uno de los mejores.

Algunos frameworks de prueba populares que podrían usarse con NodeJS son también los siguientes:

También puede ver una lista de marcos de prueba de JavaScript here

Pocos libs más que podrían ayudarlo a escribir mejor código son los siguientes:

También está el servidor Bamboo CI de Atlassian que automatiza construcciones y pruebas. Es un paquete para Apache/Tomcat (que sux porque usa Java y que lo hace muy pesado) tampoco es gratuito, pero tiene una licencia inicial que cuesta $ 10, así que creo que es asequible. Es el más destacado de todos los servidores de CI que he encontrado hasta ahora y es compatible con todas las pruebas unitarias que admiten xUnit que significa que puede ejecutar compilaciones / pruebas para cualquier idioma con Bamboo.

Otra opción para CI con NodeJS es Travis que mucha gente utiliza para sus proyectos de código abierto, ya que dice Un servicio de integración continua alojado para la comunidad de código abierto.

También hay un debate de grupo de Google con el tema Integración continua para los proyectos de Nodo JS .


Actualizar:

Mocha es el mejor en mi opinión.

¿Cuál es la experiencia con estos marcos?

expresso con expresso que es un marco de pruebas bastante bueno que también tiene cobertura de prueba. Ha sido creado por TJ Holowaychuk, que también es el creador de Express.js (increíblemente rápido (y pequeño) marco de desarrollo web JavaScript basado en el servidor construido en Node.js y Connect.). Recientemente vi que también tiene una biblioteca genial llamada should.js que se puede usar junto con Expresso para una experiencia de prueba aún mejor.

Obviamente, la posibilidad de ejecutar en el navegador sería una gran ventaja

No creo que pueda ejecutarse en el navegador, pero tampoco entiendo por qué querrías ejecutarlo dentro del navegador.

pero estoy principalmente interesado en Node.js. Algo con un sesgo muy asíncrono sería genial.

Cita del expreso:

El argumento pasado a cada devolución de llamada es beforeExit, que normalmente se usa para afirmar que se han invocado las devoluciones de llamada.

Puede usar beforeExit para probar funciones asincrónicas.

SUGERENCIA: sigue a TJ Holowaychuk en GitHub , porque crea un código de fuente abierto muy bueno.