¿Cómo medir la cobertura de código (code coverage) en Go?
¡Hola, colegas! Acabo de empezar a aprender Go y tengo un problema con la medición de la cobertura de código por pruebas. Estoy escribiendo una pequeña API REST con net/http y quiero asegurarme de que mis pruebas cubran todos los escenarios principales.
Aquí hay un ejemplo de mi código:
```go
package main
import (
"net/http"
"testing"
)
func handler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, World!"))
}
func TestHandler(t *testing.T) {
req, _ := http.NewRequest("GET", "/", nil)
rr := httptest.NewRecorder()
handler(rr, req)
if rr.Code != http.StatusOK {
t.Errorf("expected 200, got %d", rr.Code)
}
}
```
Ejecuto las pruebas con `go test`, pero ¿cómo saber qué porcentaje del código está cubierto por las pruebas? En la documentación se menciona la bandera `-cover`, pero no entiendo cómo usarla correctamente. También he visto algunos perfiles de cobertura, pero parecen complicados.
Por favor, indíquenme cómo, para un principiante:
1. Ver simplemente el porcentaje total de cobertura.
2. Ver qué líneas específicas están cubiertas.