Posteriormente a buscar en varios repositorios y sitios de internet finalmente hallamos la solución que te compartiremos a continuación.
Solución:
Tenga en cuenta que Go 1.2 (Q4 2013, rc1 está disponible) ahora se mostrará resultados de cobertura de prueba:
Una de las principales novedades de
go test
es eso ahora puede calcular y, con la ayuda de un nuevo, instalado por separado “go tool cover
” programa, mostrar resultados de cobertura de prueba.los
cover
herramienta es parte de lago.tools
subrepositorio Se puede instalar ejecutando
$ go get golang.org/x/tools/cmd/cover
La herramienta de portada hace dos cosas.
- Primero, cuando “
go test
“se le da la-cover
flag, se ejecuta automáticamente para reescribir el código fuente del paquete e insertar sentencias de instrumentación. Luego, la prueba se compila y ejecuta como de costumbre, y se informan las estadísticas básicas de cobertura:
$ go test -coverprofile fmtcoverage.html fmt
ok fmt 0.060s coverage: 91.4% of statements
$
En segundo lugar, para informes más detallados, diferentes banderas para “ir a prueba” pueden crear un archivo de perfil de cobertura, que el programa de cobertura invocó con “
go tool cover
“, puede entonces analizar.
Frank Shearar menciona:
Las últimas versiones de Go (2013/09/19) usan:
go test -coverprofile
Los detalles sobre cómo generar y analizar estadísticas de cobertura se pueden encontrar ejecutando los comandos
$ go help testflag
$ go tool cover -help
Ivan Black menciona en los comentarios:
go test -coverprofile cover.out
y luegogo tool cover -html=cover.out
abrecover.out
en tu navegador predeterminado
Ni siquiera quiero esperar a que se abra el navegador, así que definí este alias:
alias gc=grep -v -e " 1$" cover.out
que acabo de escribir gc
y tener una lista de todas las líneas no aún cubierto (aquí: con un coverage.out
línea no terminando con ” 1
“).
Go viene con una herramienta increíble para pruebas y cobertura. Aunque todas las herramientas de Go están bien documentadas go tool cover -help
Sugeriría leer el artículo de portada en el blog oficial de Go. ¡Tiene muchos ejemplos y lo recomiendo encarecidamente!
Tengo esta función en mi ~/.bash_profile. (puede simplemente pegarlo en la terminal para probarlo).
cover ()
t="/tmp/go-cover.$$.tmp"
go test -coverprofile=$t [email protected] && go tool cover -html=$t && unlink $t
entonces solo cd
en una carpeta go project/package y escriba cover
. Esto abre una herramienta visual en el navegador que le muestra el código probado y no probado para cada archivo en el paquete actual. ¡Comando muy útil! ¡Lo recomiendo encarecidamente para encontrar lo que aún no está 100% probado! Los resultados mostrados son por archivo. Desde un menú desplegable en la parte superior izquierda, puede ver los resultados de todos los archivos.
Con este comando también puedes consultar la cobertura de cualquier paquete por ejemplo:
cover fmt
La salida en la terminal de este comando sería:
ok fmt 0.031s coverage: 91.9% of statements
Además en tu navegador verás esta herramienta mostrando en rojo todas las líneas de código que no están cubiertas con pruebas:
También es posible simplemente guardar el archivo de cobertura html en lugar de abrirlo en un navegador. Esto es muy útil en los casos en que sus pruebas + cobertura se ejecutan con una herramienta de CI como Jenkins. De esa manera, puede servir los archivos de cobertura desde un servidor central y todo el equipo podrá ver los resultados de cobertura para cada compilación.
Además de las buenas respuestas anteriores, creo que estas tres líneas son la forma más sencilla de obtenerlo (que incluye todos los paquetes):
go test -v -coverprofile cover.out ./YOUR_CODE_FOLDER/...
go tool cover -html=cover.out -o cover.html
open cover.html
Tenga en cuenta que en el archivo HTML encontrará un botón desplegable que lo dirigirá a todos los archivos.
Aquí puedes ver las comentarios y valoraciones de los usuarios
Si crees que ha resultado de utilidad este artículo, agradeceríamos que lo compartas con otros programadores así contrubuyes a difundir este contenido.