Introducción
El code coverage (cobertura de código) es una métrica que indica qué porcentaje de tu código es ejecutado durante los tests. Go también tiene herramientas integradas para calcular la cobertura.
1. Medir cobertura básica de paquetes
El comando:
go test -cover
ok tailscale.com/appc 0.012s coverage: 83.5% of statements
ok tailscale.com/atomicfile 0.005s coverage: 14.3% of statements
ok tailscale.com/chirp 0.508s coverage: 78.0% of statements
Ejecuta todas las pruebas en el proyecto y muestra un porcentaje de cobertura para cada paquete.
2. Analizar funciones
Para mostrar un análisis basado en funciones:
go test -coverprofile=cov.out && go tool cover -func=cov.out
tailscale.com/envknob/envknob.go:175: RegisterDuration 0.0%
tailscale.com/envknob/envknob.go:194: RegisterInt 0.0%
tailscale.com/envknob/envknob.go:211: setBoolLocked 50.0%
tailscale.com/envknob/envknob.go:225: setOptBoolLocked 50.0%
tailscale.com/envknob/envknob.go:239: setDurationLocked 0.0%
tailscale.com/envknob/envknob.go:253: setIntLocked 0.0%
tailscale.com/envknob/envknob.go:269: Bool 100.0%
tailscale.com/envknob/envknob.go:275: BoolDefaultTrue 0.0%
tailscale.com/envknob/envknob.go:279: boolOr 40.0%
3. Generar HTML
También es posible generar un documento HTML que muestra en verde las líneas de código que están cubiertas y en rojo, las líneas que no se han probado.
go test -coverprofile=cov.out && go tool cover -html=cov.out