🇺🇸 EN
·3 min read·↗·🇺🇸 EN

Cobertura de código en 2 minutos con NYC

Portada principal del artículo: Cobertura de código en 2 minutos con NYC

¿No tenía una imagen clara de cuánto de mi código tenía pruebas? NYC llegó para ayudarme a conocer el estado real de mis tests.

NYC es un paquete de npm para obtener estadísticas sobre la cobertura de pruebas trabajando de la mano con Mocha, y su configuración es sumamente fácil. En este ejemplo, instalamos NYC para leer los resultados de Mocha y ver el porcentaje cubierto.

Estoy usando el mismo proyecto de pruebas por si quieres revisar los cambios en el repositorio de GitHub o continuar leyendo.

Instalar NYC

Instalamos el paquete NYC usando npm. Nos ayudará a obtener el reporte de cobertura de nuestras pruebas con Mocha.

npm install NYC --save-dev

Ejecutar la cobertura

Con NYC listo, ejecutamos el comando para ver el reporte.

NYC npm run test

NYC generará una tabla con estadísticas sobre el código, las funciones y las pruebas cubiertas por nuestros tests.

Podemos ver las ramas (branches), líneas, funciones con y sin tests, archivos y los porcentajes cubiertos. Si revisas la prueba ads.spec.js, solo contiene el primer caso del switch, y el reporte nos avisa que las líneas 11, 18 y 25 no están cubiertas. Si quiero llegar al 100% de cobertura, voy a completar mis casos pendientes.

Completar los casos

Editamos el archivo ads.spec.js para incluir los casos pendientes y el caso por defecto.

const assert = require('assert');
const { getIVABanner } = require('../src/ads');describe('Ads for taxes', () => {
    it('Get green banner for 15% IVA', () => {
        const actual = getIVABanner(15);
        const expect = {
            img: '/bar.jpg',
            size: '15%',
            border: 3,
            color: 'green'
        }
        assert.deepEqual(actual, expect)
    }) it('Get green banner for 20% IVA', () => {
        const actual = getIVABanner(20);
        const expect = {
            img: '/bar.jpg',
            size: '20%',
            border: 5,
            color: 'yellow'
        }
        assert.deepEqual(actual, expect)
    })
    it('Get green banner for 30% IVA', () => {
        const actual = getIVABanner(30);
        const expect = {
            img: '/bar.jpg',
            size: '30%',
            border: 5,
            color: 'red'
        }
        assert.deepEqual(actual, expect)
    })
    it('Get default ', () => {
        const actual = getIVABanner();
        const expect = {
            img: '/bar.jpg',
            size: '100%',
            border: 5,
            color: 'red'
        }
        assert.deepEqual(actual, expect)
    })
})

Volver a ejecutar las pruebas

Ejecutamos nuevamente NYC desde la terminal y el reporte muestra el 100% de nuestro código cubierto.

NYC npm run test 

¡Eso es todo!

Espero que esto te sirva como un buen punto de partida para medir la cobertura de código con Mocha y NYC. Si te gustó, por favor compártelo. ¡Gracias por leer!

Photo by Clay Banks on Unsplash

Compartir este artículo

Si esta guía te resultó útil, compártela con tu equipo o con otros desarrolladores.


Software real. Lecciones reales.

Comparto las lecciones que aprendí por las malas, para que puedas evitarlas o estar preparado cuando ocurran.

User avatar
User avatar
User avatar
User avatar
+13K

Únete a 13,800+ desarrolladores y lectores.

Cero spam. Cancela tu suscripción en cualquier momento.