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.
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