Estoy usando Mocha para probar mi aplicación NodeJS. No puedo entender cómo usar su función de cobertura de código. Intenté buscarlo en Google pero no encontré ningún tutorial adecuado. Por favor ayuda.
node.js
unit-testing
code-coverage
mocha
Tusharmath
fuente
fuente
istanbul cover node_modules/mocha/bin/_mocha
.istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
es un acceso directo canónico a./node_modules/.bin/
, yistanbul/lib/cli.js
tiene un aliasistanbul
en la carpeta bin. Así que aquí hay un comando más corto:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
Ahora ( 2020 ), la forma preferida de utilizar Estambul es a través de su "interfaz de línea de comandos de última generación" de Nueva York .
Preparar
Primero, instálalo en tu proyecto con
Luego, si tiene un proyecto basado en npm, simplemente cambie el script de prueba dentro del
scripts
objeto de su archivo package.json para ejecutar la cobertura de código de sus pruebas de mocha :correr
Ahora ejecuta tus pruebas
y verá una tabla como esta en su consola, justo después de la salida de sus pruebas:
Personalización
Informe html
Solo usa
en lugar de
text
. Ahora producirá un informe dentro./coverage/index.html
.Formatos de informe
Estambul admite una amplia gama de formatos de informes. Solo mire su biblioteca de informes para encontrar la más útil para usted. Simplemente agregue una
--reporter=REPORTER_NAME
opción para cada formato que desee. Por ejemplo, contendrá tanto la consola como el informe html.
No ejecute cobertura con prueba npm
Simplemente agregue otro script en su
package.json
y deje eltest
script solo con su corredor de prueba (por ejemplo, mocha):Ahora ejecuta este script personalizado
ejecutar pruebas con cobertura de código.
La prueba de fuerza falla si la cobertura del código es baja
Falla si la cobertura total del código es inferior al 90%:
Falla si la cobertura del código de al menos un archivo es inferior al 90%:
fuente
--reporter=html
habilitado pero el archivo html está vacío siempre, no se muestra nada sobre bloques descubiertos o% cubierto, etc. solo encabezados de la tablaBlanket.js también funciona perfecto.
npm install --save-dev blanket
en frente de su prueba / tests.js
correr
mocha -R html-cov > coverage.html
fuente