unitarias test spec pruebas node async node.js unit-testing code-coverage mocha

node.js - test - mocha spec



Codigo de cobertura con mocha. (3)

Ahora ( 2018 ), la forma preferida de usar istanbul es a través de su "interfaz de línea de comandos de última generación" nyc .

Preparar

Primero, instálalo en tu proyecto con

npm i nyc --save-dev

Luego, si tiene un proyecto basado en npm, simplemente cambie el script de prueba dentro del objeto scripts de su archivo package.json para ejecutar la cobertura de código de sus pruebas mocha :

{ "scripts": { "test": "nyc --reporter=text mocha" } }

correr

Ahora ejecuta tus pruebas

npm test

y verá una tabla como esta en su consola, justo después de la salida de sus pruebas:

Personalización

Informe html

Solo usa

nyc --reporter=html

en lugar de text . Ahora producirá un informe dentro de ./coverage/index.html .

Formatos de informe

Estambul soporta una amplia gama de formatos de informes. Basta con mirar su biblioteca de informes para encontrar el más útil para usted. Solo agregue una opción --reporter=REPORTER_NAME para cada formato que desee. Por ejemplo, con

nyc --reporter=html --reporter=text

Tendrás tanto la consola como el informe html.

No ejecute la cobertura con la prueba de npm

Simplemente agregue otro script en su package.json y deje el script de test solo con su corredor de prueba (por ejemplo, mocha):

{ "scripts": { "test": "mocha", "test-with-coverage": "nyc --reporter=text mocha" } }

Ahora ejecuta este script personalizado

npm run test-with-coverage

Para ejecutar pruebas con cobertura de código.

Prueba de fuerza falla si la cobertura del código es baja

Fallo si la cobertura total del código es inferior al 90%:

nyc --check-coverage --lines 90

Fallo si la cobertura de código de al menos un archivo es inferior al 90%:

nyc --check-coverage --lines 90 --per-file

Estoy usando Mocha para probar mi aplicación NodeJS. No puedo averiguar cómo usar su función de cobertura de código. Intenté googlearlo pero no encontré ningún tutorial apropiado. Por favor ayuda.


Blanket.js funciona perfecto también.

npm install --save-dev blanket

delante de tu test / tests.js

require(''blanket'')({ pattern: function (filename) { return !/node_modules/.test(filename); } });

ejecutar mocha -R html-cov > coverage.html


Necesita una biblioteca adicional para la cobertura de código, y se sorprenderá de lo poderoso y fácil que es istanbul . Intente lo siguiente, después de obtener sus pruebas de moca para pasar:

npm install nyc

Ahora, simplemente coloque el comando nyc delante de su comando de prueba existente, por ejemplo:

{ "scripts": { "test": "nyc mocha" } }