node.js - unitarias - Cómo obtener información de cobertura de código usando Node, Mocha
pruebas unitarias node js (3)
Así es como obtengo cobertura de código en todos mis proyectos js (se parece al de Sachacr):
istanbul cover _mocha -- -R spec --recursive test
Recientemente comencé a realizar pruebas unitarias para mis proyectos de Nodo con la ayuda de Mocha. Las cosas van bien hasta ahora y he descubierto que mi código ha mejorado significativamente ahora que estoy pensando en todos los ángulos para cubrir en mis pruebas.
Ahora, me gustaría compartir mi experiencia con el resto de mi equipo y ponerlos en práctica con sus propias pruebas. Parte de la información que me gustaría compartir es la cantidad de mi código que está realmente cubierta.
A continuación se muestra una muestra de la estructura de mi aplicación que he separado en diferentes componentes o módulos. Para promover la reutilización, trato de mantener todas las dependencias al mínimo y aisladas de la carpeta de componentes. Esto incluye mantener las pruebas aisladas también en lugar de la test/
carpeta predeterminada en la raíz del proyecto.
| app/
| - component/
| -- index.js
| -- test/
| ---- index.js
Actualmente mi package.json
ve así. Estoy jugando con Istanbul , pero de ninguna manera estoy atado. También he intentado usar Blanket con niveles similares de éxito.
{
"scripts": {
"test": "clear && mocha app/ app/**/test/*.js",
"test-cov": "clear && istanbul cover npm test"
}
Si ejecuto mi comando test-cov
tal como está, recibo el siguiente error de Estambul (que no es útil):
No coverage information was collected, exit without writing coverage information
Entonces mi pregunta sería esta: dada la estructura y el entorno de mi aplicación actual, ¿cómo puedo informar correctamente sobre la cobertura de mi código utilizando Estambul (u otra herramienta)?
TL; DR
¿Cómo puedo informar sobre la cobertura de mi código utilizando Node, Mocha y la estructura actual de mi aplicación?
EDITAR
Para ser claros, Mocha está ejecutando las pruebas correctamente en este estado actual. Obtener el informe de cobertura del código es con lo que estoy luchando para llegar al trabajo.
Editar 2
Recibí una notificación de que otra pregunta puede haber contestado mi pregunta ya. Solo sugería instalar Estambul y ejecutar el comando cover
, lo que ya he hecho. Otra sugerencia recomienda ejecutar los comandos de prueba con _mocha
, lo cual, según algunas investigaciones que he realizado, es evitar que Estambul se trague las banderas destinadas a Mocha y no es necesario en las versiones más recientes de Mocha.
Debes intentar ejecutar tu prueba de esta manera:
istanbul cover _mocha test/**/*.js
Necesitas un archivo .istanbul.yml
. No veo ninguna referencia a él, es difícil decirlo sin saber su contenido. No creo que haya suficiente información para resolver esto en la pregunta. Actualizaré esta respuesta si actualiza la pregunta, especialmente antes de que caduque la recompensa, ¿eh?