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"
}
}