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.jstiene un aliasistanbulen la carpeta bin. Así que aquí hay un comando más corto:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000istanbul cover node_modules/mocha/bin/_mocha -- -R specAhora ( 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
scriptsobjeto 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_NAMEopció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.jsony deje eltestscript 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=htmlhabilitado 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 blanketen frente de su prueba / tests.js
correr
mocha -R html-cov > coverage.htmlfuente