"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como medir a cobertura dos testes de integração Go?

Como medir a cobertura dos testes de integração Go?

Publicado em 2024-11-16
Navegar:469

How to Measure Test Coverage for Go Integration Tests?

Determinando a cobertura de teste em testes de integração Go

Os testes de integração visam avaliar a funcionalidade de um sistema como um todo, muitas vezes zombando ou controlando dependências externas. No entanto, determinar a cobertura dos testes de integração apresenta desafios únicos.

Medindo a cobertura em testes que não são de pacote

No cenário descrito, os testes são separados dos pacotes eles testam. Consequentemente, o comando go test -cover reporta 0% de cobertura. Para resolver isso, pode-se utilizar a diretiva -coverpkg.

Usando -coverpkg para cobertura de pacote específico

A diretiva -coverpkg permite a medição da cobertura de teste em um determinado pacote, mesmo que os testes sejam externos. Ele usa o caminho do pacote como argumento.

Por exemplo, o comando a seguir mede a cobertura do pacote mypackage:

$ go test -cover -coverpkg mypackage ./src/api/...

Essa abordagem permite a análise direcionada da cobertura do pacote em testes de integração.

Exemplo de Cobertura Saída

Considere um exemplo em que o pacote da API contém testes em main_test.go. A maior parte da lógica de negócios reside no pacote mypackage. A execução do comando com -coverpkg fornece uma representação mais precisa da cobertura:

$ go test -cover -coverpkg mypackage ./src/api/...
ok      /api    0.190s  coverage: 50.8% of statements in mypackage
ok      /api/mypackage   0.022s  coverage: 0.7% of statements in mypackage

Esta saída mostra que os testes cobrem 50,8% das instruções no pacote mypackage. Por outro lado, sem usar -coverpkg, a cobertura pareceria maior, 71,0%, o que se deve a testes fora do pacote especificado.

Considerações Adicionais

Vale a pena observando que os testes de integração normalmente cobrem menos código do que os testes de unidade devido à complexidade da simulação e à natureza dos testes em todo o sistema. No entanto, a abordagem descrita acima fornece uma maneira de medir a cobertura real dos testes de integração especificamente para pacotes relevantes.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3