"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 posso capturar a cobertura de código de testes de integração em um binário Go?

Como posso capturar a cobertura de código de testes de integração em um binário Go?

Publicado em 2024-11-18
Navegar:493

How Can I Capture Code Coverage from Integration Tests Against a Go Binary?

Capturando cobertura de código de um binário Go

Ao executar testes de unidade, capturar a cobertura de código é simples. No entanto, coletar métricas de cobertura durante os testes de integração no próprio binário pode ser um desafio. Existe uma maneira de superar esse obstáculo?

A necessidade de cobertura de testes de integração

Os testes de integração fornecem uma visão mais abrangente da cobertura de código do que apenas os testes de unidade. Ao executar o binário em entradas do mundo real, podemos avaliar como nosso código se comporta sob várias condições.

O Desafio

A ferramenta de cobertura Go opera apenas em conjunto com o pacote de testes. Isso representa um problema para testes de integração que normalmente não se enquadram nesta estrutura.

A solução: testes de integração na estrutura de testes do Go

Para capturar a cobertura dos testes de integração , precisamos integrá-los ao pacote de teste de alguma forma.

  1. Criar um arquivo de teste: Crie um arquivo de teste que execute sua função main() em uma goroutine.
func TestMainApp(t *testing.T) {
    go main()
    // ... Start integration tests here
}
  1. Executar testes de integração: Use exec.Cmd para executar seus testes de integração fora da goroutine criada anteriormente.
  2. Reúna estatísticas de cobertura: Por fim, reúna as estatísticas de cobertura usando a ferramenta de cobertura.

Outros recursos

Para uma discussão anterior sobre este tópico, consulte o artigo "Cobertura Go com testes externos", que explora uma abordagem comparável.

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