playwright-test-coverage
Para medir la cobertura de código de tu aplicación durante los tests end-to-end con Playwright.
Extensión de Playwright que recoge cobertura de código de los tests end-to-end.
Notas y contexto
Qué es
playwright-test-coverage es una pequeña librería open source creada por Anish Karandikar que extiende el runner @playwright/test para recoger cobertura de código durante los tests end-to-end. Funciona instrumentando previamente el código de la aplicación con babel-plugin-istanbul y, al ejecutar los tests, vuelca la información de cobertura para que nyc genere los informes. Se distribuye en npm bajo licencia MIT.
Para qué sirve
- Medir qué partes del código de tu aplicación se ejercitan realmente durante los tests end-to-end.
- Combinar la cobertura de tests unitarios y de tests e2e en un único informe con nyc/Istanbul.
- Detectar zonas del frontend sin probar más allá de lo que cubren los tests unitarios.
- Integrar la métrica de cobertura e2e en pipelines de CI para vigilar la calidad.
Cuándo usarlo
Es útil cuando ya usas Playwright para tests end-to-end y quieres saber qué porcentaje del código se ejecuta en esos flujos, algo que los tests unitarios por sí solos no reflejan. Encaja sobre todo en proyectos JavaScript/TypeScript que puedan instrumentar su build con babel-plugin-istanbul. Si no necesitas la métrica de cobertura, basta con @playwright/test estándar.
Ejemplo
Instalación y uso básico sustituyendo el import de Playwright por el de esta librería:
npm i -D playwright-test-coverage
const { test, expect } = require('playwright-test-coverage');
test('flujo básico', async ({ page }) => {
await page.goto('http://localhost:3000');
await expect(page).toHaveTitle(/Mi App/);
});
El código de la aplicación debe estar instrumentado con babel-plugin-istanbul durante el build; tras ejecutar los tests, nyc consolida y muestra el informe de cobertura.
Puntos clave
- Reemplaza el import de
@playwright/testpor el de la librería sin cambiar la forma de escribir los tests. - Recoge la cobertura del código que se ejecuta en el navegador durante los tests e2e.
- Se apoya en herramientas estándar del ecosistema: babel-plugin-istanbul para instrumentar y nyc para los informes.
- Proyecto ligero, con releases publicadas y licencia MIT.
Ten en cuenta
Requiere instrumentar el build de la aplicación con babel-plugin-istanbul, lo que añade un paso de configuración y no siempre es trivial según el bundler. Es un proyecto pequeño mantenido por una sola persona y con pocos contribuidores, así que conviene fijar versiones y revisar su compatibilidad con la versión de Playwright que uses.