Cobertura de código con Mocha
Estoy usando Mocha para probar mi aplicación NodeJS. No soy capaz de averiguar cómo utilizar su función de cobertura de código. Intenté buscarlo en Google, pero no encontré ningún tutorial adecuado. Por favor, ayuda.
3 answers
Necesita una biblioteca adicional para la cobertura de código, y se quedará impresionado por lo poderoso y fácil que es estambul. Prueba lo siguiente, después de que apruebes las pruebas mocha:
npm install nyc
Ahora, simplemente coloque el comando nyc delante de su comando de prueba existente, por ejemplo:
{
"scripts": {
"test": "nyc mocha"
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-24 13:53:58
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.
Configuración
Primero, instálalo en tu proyecto con
npm i nyc --save-dev
Entonces, si tiene un proyecto basado en npm, simplemente cambie el script de prueba dentro del objeto scripts
de su paquete .json archivo para ejecutar la cobertura de código de sus pruebas mocha :
{
"scripts": {
"test": "nyc --reporter=text mocha"
}
}
Corre
Ahora ejecute su pruebas
npm test
Y verás una tabla como esta en tu consola, justo después de la salida de tus pruebas:
Personalización
Informe html
Solo use
nyc --reporter=html
En Lugar de text
. Ahora producirá un informe dentro de ./coverage/index.html
.
Formatos de los informes
Estambul admite una amplia gama de formatos de informes. Basta con mirar su biblioteca de informes para encontrar el más útil para usted.
Simplemente agregue una opción --reporter=REPORTER_NAME
para cada formato que desee.
Por ejemplo, con
nyc --reporter=html --reporter=text
Tendrá tanto la consola como el informe html.
No ejecute la cobertura con la prueba npm
Simplemente agregue otro script en su package.json
y deje el script test
solo con su corredor de prueba (por ejemplo, mocha):
{
"scripts": {
"test": "mocha",
"test-with-coverage": "nyc --reporter=text mocha"
}
}
Ahora ejecute este script personalizado
npm run test-with-coverage
Para ejecutar pruebas con cobertura de código.
Falla la prueba de fuerza si la cobertura del código es baja
Falla si la cobertura total del código es inferior 90%:
nyc --check-coverage --lines 90
Falla si la cobertura de código de al menos un archivo está por debajo del 90%:
nyc --check-coverage --lines 90 --per-file
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-13 19:04:06
Manta.js funciona perfecto también.
npm install --save-dev blanket
Delante de su prueba/pruebas.js
require('blanket')({
pattern: function (filename) {
return !/node_modules/.test(filename);
}
});
Corre mocha -R html-cov > coverage.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-01 21:13:02