Lenon Marcel meu blog sobre qualquer coisa

Cobertura de código Go

Uma das métricas que pode ser utilizada na missão de escrever código com qualidade é a cobertura de código, que fornece informações sobre quais partes de um programa são exercitadas por uma determinada suite de testes.

Para gerar a cobertura de um código escrito em Go, é possível utilizar a ferramenta go test da seguinte forma:

go test -coverprofile=cover.out

Com a flag -coverprofile o comando gera um arquivo de saída com todos os dados de cobertura de código.

Há uma ferramenta disponível no repositório go.tools que recebe este arquivo e gera um HTML com todo o código Go anotado, identificando quais trechos estão sem cobertura.

Para instalar a ferramenta, basta usar go get:

go get code.google.com/p/go.tools/cmd/cover

O arquivo HTML é gerado com o seguinte comando:

go tool cover -html=cover.out -o cover.html

É possível omitir a flag -o, assim o comando abre o HTML gerado diretamente no navegador.

tl;dr

Instale a ferramenta de cobertura através do go get:

go get code.google.com/p/go.tools/cmd/cover

Utilize o seguinte shell script para gerar o arquivo profile e o HTML da cobertura:

cover () {
    profile="$(mktemp -dt $$)/cover.out"
    go test -coverprofile="$profile" $@ && go tool cover -html="$profile"
}

Execute no diretório do seu código:

cover

O HTML da cobertura será aberto no seu navegador.

CC0 Este artigo está em domínio público.