Jest Coverage Report Action
Para vigilar la cobertura de tests con Jest en cada pull request directamente desde GitHub.
GitHub Action que publica el informe de cobertura de Jest en cada pull request.
Notas y contexto
Qué es
Jest Coverage Report Action es una GitHub Action open source creada por Artiom Tropnikov (ArtiomTr) que ejecuta tus tests con Jest y publica un informe de cobertura en cada pull request. Está escrita en TypeScript y compara la cobertura de la rama del PR con la rama base para detectar regresiones. Se distribuye bajo licencia MIT.
Para qué sirve
- Mostrar un comentario en cada pull request con el detalle de la cobertura de código.
- Comparar la cobertura frente a la rama base y resaltar las bajadas.
- Bloquear pull requests que no alcancen los umbrales de cobertura definidos.
- Añadir anotaciones en el código con tests fallidos y líneas sin cubrir.
Cuándo usarlo
Es la opción natural cuando tu proyecto ya usa Jest y trabajas con flujos de pull request en GitHub, sin querer depender de servicios externos como Codecov o Coveralls. Si usas otro runner (Vitest, Mocha) o necesitas dashboards históricos más allá del PR, conviene valorar esas alternativas.
Ejemplo
Crea un workflow en .github/workflows/coverage.yml:
name: 'coverage'
on:
pull_request:
branches:
- main
jobs:
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ArtiomTr/jest-coverage-report-action@v2
with:
package-manager: pnpm
annotations: all
Los umbrales se configuran en jest.config.js con coverageThreshold (por ejemplo lines: 80) para que la action falle si no se cumplen.
Puntos clave
- Comentario automático en el PR con cobertura detallada y comparación con la rama base.
- Soporte para npm, yarn, pnpm y bun, además de directorios de trabajo personalizados.
- Anotaciones configurables (none, coverage, failed-tests, all) y salida como comentario o markdown reutilizable.
Ten en cuenta
Está pensada específicamente para Jest: si tu proyecto usa otro framework de tests no encaja. El comentario vive en el pull request, por lo que no ofrece un historial de cobertura a largo plazo como las plataformas dedicadas. El proyecto sigue activo, con última versión v2.3.1.