cover 🎯

Cover pub.dev badge cover codecov

cover es la forma más sencilla y robusta de verificar la cobertura de tu código Dart/Flutter directamente desde la terminal o tus scripts.

✨ Características

  • 📊 Reportes Claros: Genera una tabla elegante con el resumen de cobertura por archivo.
  • 🚀 Ideal para CI/CD: Devuelve códigos de salida (exit codes) para fallar pipelines si la cobertura es insuficiente.
  • 🔍 Líneas Faltantes: Muestra exactamente qué números de línea te faltan por probar con --show-uncovered.
  • 🧹 Filtros Inteligentes: Ignora archivos generados (.g.dart, .freezed.dart, etc.) con un solo flag.
  • 🤖 Salida JSON: Perfecto para integraciones con otras herramientas.
  • 🛡️ Seguro: Protección contra inyecciones ANSI y manejo de errores robusto.

📦 Instalación

Uso Global (Recomendado)

dart pub global activate cover

Como Dependencia de Desarrollo

Añádelo a tu pubspec.yaml:

dev_dependencies:
  cover: ^0.5.1

🚀 Uso desde CLI

# Verificación básica (busca coverage/lcov.info por defecto)
$ cover check

# Configurar un mínimo de cobertura y mostrar líneas no cubiertas
$ cover check --min-coverage 90 --show-uncovered

# Ignorar archivos generados y excluir carpetas específicas
$ cover check --exclude-generated --excluded-paths "lib/generated, lib/src/legacy"

# Obtener salida en formato JSON
$ cover check --json

Flags Disponibles

Flag Abbr Descripción Por defecto
--path -p Ruta al archivo lcov.info coverage/lcov.info
--min-coverage -m Porcentaje mínimo requerido 100.0
--show-uncovered -u Muestra los números de líneas no cubiertas false
--exclude-generated Ignora archivos .g.dart, .freezed.dart, etc. false
--excluded-paths -e Rutas separadas por coma a excluir ""
--json -j Salida en formato JSON false

🛠️ Uso Programático

Puedes integrar cover directamente en tu lógica de Dart:

import 'package:cover/cover.dart';

void main() async {
  final service = CoverageService();
  
  final result = await service.checkCoverage(
    filePath: 'coverage/lcov.info',
    minCoverage: 80.0,
    excludeGenerated: true,
  );

  print('Cobertura total: ${result.coverage}%');
}

📸 Ejemplo de Salida

🤝 Contribuciones e Issues

Si encuentras un error o tienes una idea, abre un issue en nuestro rastreador de problemas.

Libraries

cover
The easy way to check your code coverage